package src;
import java.io.StringReader;
import java.util.Date;
import org.apache.lucene
.analysis.Analyzer;
import org.apache.lucene
.analysis.SimpleAnalyzer;
import org.apache.lucene
.analysis.TokenStream;
import org.apache.lucene
.analysis.cjk.CJKAnalyzer;
import org.apache.lucene
.analysis.cn.ChineseAnalyzer;
import org.apache.lucene
.analysis.standard.StandardAnalyzer;
import org.apache.lucene
.document.Document;
import org.apache.lucene
.index.IndexReader;
import org.apache.lucene
.index.Term;
import org.apache.lucene
.queryParser.QueryParser;
import org.apache.lucene
.search.FuzzyQuery;
import org.apache.lucene
.search.Hits;
import org.apache.lucene
.search.IndexSearcher;
import org.apache.lucene
.search.Query;
import java.util.Date;
import org.apache.lucene
.analysis.standard.StandardAnalyzer;
import org.apache.lucene
.document.Document;
import org.apache.lucene
.index.IndexReader;
import org.apache.lucene
.queryParser.QueryParser;
import org.apache.lucene
.search.Hits;
import org.apache.lucene
.search.IndexSearcher;
import org.apache.lucene
.search.Query;
import org.apache.lucene
.search.highlight.Highlighter;
import org.apache.lucene
.search.highlight.QueryScorer;
import org.apache.lucene
.search.highlight.SimpleFragmenter;
import org.apache.lucene
.search.highlight.SimpleHTMLFormatter;
public LuceneSearch {
public void (String args) throws Exception{
LuceneSearch test = LuceneSearch;
//
Hits h = null;
h = test.search("显示 ");
test.prResult(h);
h = test.search("jy*");
test.prResult(h);
h = test.search("djy");
test.prResult(h);
}
public LuceneSearch{
try{
searcher = IndexSearcher(IndexReader.open("E:lucene
est4index"));
}catch(Exception e){
e.prStackTrace;
}
}
//声明个IndexSearcher对象
private IndexSearcher searcher = null;
//声明个Query对象
private Query query = null;
ChineseAnalyzer analyzer = ChineseAnalyzer;
Highlighter highlighter = null;
public final Hits search(String keyword){
.out.prln("正在检索关键字:"+keyword);
try{
QueryParser qp = QueryParser("title",analyzer);
query = qp.parse(keyword);
Term term = Term("content",keyword);
FuzzyQuery fq = FuzzyQuery(term);
Date start = Date;
//Hits hits = searcher.search(query);
Hits hits = searcher.search(query);
//高亮
显示设置
SimpleHTMLFormatter simpleHTMLFormatter = SimpleHTMLFormatter("","");
highlighter = Highlighter(simpleHTMLFormatter, QueryScorer(query));
highlighter.TextFragmenter( SimpleFragmenter(10));//这个100是指定关键字串context长度你可以自
己设定不可能返回整篇正文内容
Date end = Date;
.out.prln("检索完成,用时"+(end.getTime-start.getTime)+"毫秒");
hits;
}catch(Exception e){
e.prStackTrace;
null;
}
}
public void prResult(Hits h){
(h.length 0){
.out.prln("对不起,没有找到您要结果.");
}{
for( i = 0; i < h.length; i){
try{
Document doc = h.doc(i);
.out.prln("这个是"+(i+1)+"个结果:"+doc.get("id")+" title:"+doc.get("title")+"
content:"+doc.get("content"));
//高亮
出显示
TokenStream tokenStream =analyzer.tokenStream("content", StringReader(doc.get("title")));
.out.prln(highlighter.getBestFragment(tokenStream,h.doc(i).get("title")));
//.out.prln(doc.get("path"));
}catch(Exception e){
e.prStackTrace;
}
}
}
.out.prln("--------------------------------------");
}
}
分享到:
相关推荐
通过上述方法,不仅能够保持Lucene高亮显示功能的准确性,还能在处理中文分词时显著提升系统性能,特别是对于大数据量和高并发场景下的应用,这种优化显得尤为重要。Lucene的TermVector特性,配合合理的代码实现,为...
### Lucene高亮显示详解 在全文搜索领域,Apache Lucene是业界标准的搜索引擎库,提供了强大的文本搜索功能。而在搜索结果中实现关键词高亮显示,可以极大地提升用户体验,让用户快速定位到搜索词所在的位置。本文...
**SpringBoot+Lucene搜索结果高亮显示** 在现代Web应用程序中,强大的全文搜索引擎功能是不可或缺的,而Apache Lucene正是这样一个高效的、可扩展的开源全文检索库。在这个SpringBoot+Lucene的Demo中,我们将深入...
本话题聚焦于“Lucene多字段查询”和“文字高亮显示”,这两个特性在信息检索和数据挖掘中具有广泛应用。 首先,让我们深入理解“Lucene多字段查询”。在信息检索系统中,用户可能希望根据多个字段来过滤和排序结果...
《Lucene+HighLighter高亮显示实例解析》 在信息技术领域,搜索引擎的构建与优化是至关重要的一环,其中,如何有效地对搜索结果进行高亮显示,以突出关键信息,是提升用户体验的关键因素之一。本篇文章将深入探讨...
lucene3.5高亮
本文将详细介绍如何使用Java和Lucene来实现HTML文本的高亮显示,以便用户在搜索结果中能快速识别关键词。提供的`HighLighterUtils.java`文件应该包含了实现这一功能的核心代码。 首先,我们需要理解高亮显示的基本...
本压缩包中的代码着重展示了如何使用 Lucene 进行分页搜索和结果高亮显示。下面将详细解释这两个关键知识点。 **一、Lucene 分页搜索** 在大型数据集上进行搜索时,一次性返回所有结果并不实际,因此分页搜索显得...
lucene-highlighter-3.5.0.jar lucene高亮包
标题中的“lucene.net以及高亮的DLL文件”指的是在.NET环境中使用Lucene搜索引擎库时,涉及到了文本高亮显示的DLL组件。Lucene.Net是一个开源的全文检索库,它是Apache Lucene项目针对.NET Framework的移植版本,为...
下面我们将深入探讨如何在Android环境中利用Lucene来创建一个高效、功能丰富的全文检索系统,并了解如何高亮显示搜索结果中的关键字。 首先,我们要理解全文检索的基本原理。全文检索是指通过建立倒排索引来快速...
本文将深入探讨Lucene.NET如何进行中文分词以及高亮显示的实现。 ### 1. 中文分词 中文分词是将连续的汉字序列切分成具有语义的词语的过程,是自然语言处理(NLP)中的基础步骤。在Lucene.NET中,为了支持中文分词...
这个标题提到的"java实现高亮显示的jar包,lucene用的jar包"是指利用Lucene库进行文本搜索时,对搜索结果进行高亮显示的相关功能。下面我们将深入探讨Lucene的核心组件、高亮显示的实现原理以及相关jar包的作用。 ...
5. **高亮显示**:可以将搜索关键词在结果文档中高亮显示,提高用户体验。 二、主要功能 1. **索引构建**:从各种数据源(如文件、数据库等)读取内容,创建索引结构。 2. **索引更新**:支持增量索引,仅对变动...
标题"IKAnalyzer LUCENE.4.9 中文分词的高亮显示"表明我们将探讨如何使用IKAnalyzer与Lucene 4.9版本相结合,实现搜索结果的关键词高亮功能。高亮显示有助于用户快速识别和理解搜索结果中的重要信息。 IKAnalyzer的...
- **搜索结果高亮**: 为了提高用户阅读体验,Lucene 高亮包提供了搜索关键词在文档中的高亮显示功能,使用户能快速识别出匹配的关键词。 - **自定义样式**: 开发者可以自定义高亮的样式,如使用不同的颜色或者背景...
《深入理解Lucene 4.7.0:Java全文索引与高亮显示技术》 Lucene是一个由Apache软件基金会开发的开源全文检索库,它为Java开发者提供了强大的文本搜索功能。在4.7.0这个版本中,Lucene不仅强化了其核心搜索功能,还...
在本教程中,我们将深入探讨Lucene中的高亮显示机制,这是搜索引擎返回结果时非常有用的一项功能,可以突出显示与查询匹配的关键字。在实际应用中,用户通常希望看到搜索词在文档中的确切位置,高亮显示使得这些匹配...
《Lucene5学习之Highlighter关键字高亮》 在信息技术领域,搜索引擎的使用已经变得无处不在,而其中的关键技术之一就是如何有效地突出显示搜索结果中的关键字,这就是我们今天要探讨的主题——Lucene5中的...
《深入解析Lucene高亮显示源码:剖析`lucene-highlighter-2.2.0-src.zip`》 Lucene,作为一个开源全文检索库,以其高效、灵活的特点在信息检索领域广泛应用。在处理搜索结果时,为了提升用户体验,通常会采用高亮...