packagecom.feedsky.lucene;
importjava.io.StringReader;
importorg.apache.lucene.analysis.Analyzer;
importorg.apache.lucene.analysis.TokenStream;
importorg.apache.lucene.document.Document;
importorg.apache.lucene.document.Field;
importorg.apache.lucene.index.IndexWriter;
importorg.apache.lucene.queryParser.QueryParser;
importorg.apache.lucene.search.Hits;
importorg.apache.lucene.search.IndexSearcher;
importorg.apache.lucene.search.Query;
importorg.apache.lucene.search.highlight.Highlighter;
importorg.apache.lucene.search.highlight.QueryScorer;
importorg.apache.lucene.search.highlight.SimpleFragmenter;
importorg.apache.lucene.search.highlight.SimpleHTMLFormatter;
importorg.apache.lucene.store.Directory;
importorg.apache.lucene.store.RAMDirectory;
publicclassHighLighterTest
{
publicstaticvoidmain(String[]args)
{
StringfieldName="text";
Stringtext="《越狱3》播出时间再次延期急煞中国“狱友”巨型变形金刚惊现北京《龙珠Z》绝招威力排行《不能说的秘密》清纯版迅雷宽频合作发行《越狱动画版》";//检索内容
//采用猎兔分词
Analyzeranalyzer=newCnAnalyzer();
Directorydirectory=newRAMDirectory();
try
{
//索引
IndexWriteriwriter=newIndexWriter(directory,analyzer,true);
iwriter.setMaxFieldLength(25000);
Documentdoc=newDocument();
doc.add(newField(fieldName,text,Field.Store.YES,
Field.Index.TOKENIZED,
Field.TermVector.WITH_POSITIONS_OFFSETS));
iwriter.addDocument(doc);
iwriter.close();
IndexSearcherisearcher=newIndexSearcher(directory);
QueryParserqueryParse=newQueryParser(fieldName,analyzer);
Queryquery=queryParse.parse("越狱");
Hitshits=isearcher.search(query);
for(inti=0;i<hits.length();i++){
DocumentdocTemp=hits.doc(i);
Stringvalue=docTemp.get(fieldName);
// 对要高亮显示的字段格式化,这里只是加红色显示和加粗
SimpleHTMLFormattersHtmlF=newSimpleHTMLFormatter("<b><fontcolor='red'>","</font></b>");
Highlighterhighlighter=newHighlighter(sHtmlF,newQueryScorer(query));
highlighter.setTextFragmenter(newSimpleFragmenter(10));
if(value!=null){
TokenStreamtokenStream=analyzer.tokenStream(fieldName,newStringReader(value));
Stringstr=highlighter.getBestFragment(tokenStream,value);
System.out.println(str);
}
}
isearcher.close();
directory.close();
}
catch(Exceptione)
{
e.printStackTrace();
}
}
}
分享到:
相关推荐
通过上述方法,不仅能够保持Lucene高亮显示功能的准确性,还能在处理中文分词时显著提升系统性能,特别是对于大数据量和高并发场景下的应用,这种优化显得尤为重要。Lucene的TermVector特性,配合合理的代码实现,为...
### Lucene高亮显示详解 在全文搜索领域,Apache Lucene是业界标准的搜索引擎库,提供了强大的文本搜索功能。而在搜索结果中实现关键词高亮显示,可以极大地提升用户体验,让用户快速定位到搜索词所在的位置。本文...
lucene-highlighter-3.5.0.jar lucene高亮包
**SpringBoot+Lucene搜索结果高亮显示** 在现代Web应用程序中,强大的全文搜索引擎功能是不可或缺的,而Apache Lucene正是这样一个高效的、可扩展的开源全文检索库。在这个SpringBoot+Lucene的Demo中,我们将深入...
lucene3.5高亮
本文将详细介绍如何使用Java和Lucene来实现HTML文本的高亮显示,以便用户在搜索结果中能快速识别关键词。提供的`HighLighterUtils.java`文件应该包含了实现这一功能的核心代码。 首先,我们需要理解高亮显示的基本...
《Lucene+HighLighter高亮显示实例解析》 在信息技术领域,搜索引擎的构建与优化是至关重要的一环,其中,如何有效地对搜索结果进行高亮显示,以突出关键信息,是提升用户体验的关键因素之一。本篇文章将深入探讨...
本话题聚焦于“Lucene多字段查询”和“文字高亮显示”,这两个特性在信息检索和数据挖掘中具有广泛应用。 首先,让我们深入理解“Lucene多字段查询”。在信息检索系统中,用户可能希望根据多个字段来过滤和排序结果...
《深入解析Lucene高亮显示源码:剖析`lucene-highlighter-2.2.0-src.zip`》 Lucene,作为一个开源全文检索库,以其高效、灵活的特点在信息检索领域广泛应用。在处理搜索结果时,为了提升用户体验,通常会采用高亮...
- **搜索结果高亮**: 为了提高用户阅读体验,Lucene 高亮包提供了搜索关键词在文档中的高亮显示功能,使用户能快速识别出匹配的关键词。 - **自定义样式**: 开发者可以自定义高亮的样式,如使用不同的颜色或者背景...
标题中的“lucene.net以及高亮的DLL文件”指的是在.NET环境中使用Lucene搜索引擎库时,涉及到了文本高亮显示的DLL组件。Lucene.Net是一个开源的全文检索库,它是Apache Lucene项目针对.NET Framework的移植版本,为...
### Lucene高亮显示实现详解 #### 一、引言 在搜索引擎开发中,为了提升用户体验,往往需要对搜索结果中的关键词进行高亮处理。这样不仅可以让用户一眼就能看到搜索结果与他们输入的关键词之间的关联性,同时也有...
**Lucene高亮显示** 在信息检索领域,用户通常希望在搜索结果中快速找到与查询相关的关键词,这就是所谓的“高亮显示”。Apache Lucene是一个强大的全文搜索引擎库,它提供了多种功能,包括高亮显示搜索结果。高亮...
例如,当用户搜索“Java GUI”时,Lucene 高亮组件会在文档中找到“Java”和“GUI”这两个词,并用特殊格式(如加粗、颜色等)标注出来。 ### 四、Java GUI 应用 在给定的文件名称“javagui”中,我们可以推测这...
本压缩包中的代码着重展示了如何使用 Lucene 进行分页搜索和结果高亮显示。下面将详细解释这两个关键知识点。 **一、Lucene 分页搜索** 在大型数据集上进行搜索时,一次性返回所有结果并不实际,因此分页搜索显得...
lucene-memory-3.0.2.jar,lucene高亮显示中不可少的jar包lucene-memory-*.jar
在Android平台上实现全文检索并高亮关键字,常常需要用到开源全文搜索引擎Lucene。Lucene是一个高性能、全文本搜索库,提供了一个简单但强大的应用编程接口(API)用于索引和搜索文本。下面我们将深入探讨如何在...
本文将深入探讨Lucene.NET如何进行中文分词以及高亮显示的实现。 ### 1. 中文分词 中文分词是将连续的汉字序列切分成具有语义的词语的过程,是自然语言处理(NLP)中的基础步骤。在Lucene.NET中,为了支持中文分词...
用于编写Lucene高亮摘要的jar包,版本2.0.0,好用。谁用谁知道~~~~
《Lucene5学习之Highlighter关键字高亮》 在信息技术领域,搜索引擎的使用已经变得无处不在,而其中的关键技术之一就是如何有效地突出显示搜索结果中的关键字,这就是我们今天要探讨的主题——Lucene5中的...