package cn.itcast.cc.highlighter;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.document.*;
import org.apache.lucene.document.Field.*;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriter.MaxFieldLength;
import org.apache.lucene.queryParser.*;
import org.apache.lucene.search.*;
import org.apache.lucene.search.highlight.*;
import org.apache.lucene.search.highlight.Scorer;
import org.junit.Test;
import jeasy.analysis.MMAnalyzer;
public class HighLighterTesst {
private String path = "./index/";// lucene的索引数据被保存在这个目录中
private Analyzer analyzer = new MMAnalyzer();// 词库分词器
@Test
public void test() {
try {
// 创建索引数据
IndexWriter indexWriter = new IndexWriter(this.path, this.analyzer,
MaxFieldLength.LIMITED);
Document doc = new Document();
doc.add(new Field("content", "中国人民加油!", Store.YES, Index.ANALYZED));
indexWriter.addDocument(doc);
indexWriter.close();
// 查询数据
IndexSearcher indexSearcher = new IndexSearcher(this.path);
QueryParser queryParser = new MultiFieldQueryParser(
new String[] { "content" }, this.analyzer);
Query query = queryParser.parse("加油");
TopDocs topDocs = indexSearcher.search(query, null, 10);
// 创建高亮
// SimpleHTMLFormatter的默认值为"<a></a>"
Formatter formatter = new SimpleHTMLFormatter("<span>", "</span>");
Scorer scorer = new QueryScorer(query);
Highlighter highlighter = new Highlighter(formatter, scorer);
// 打印结果
for (ScoreDoc scoreDoc : topDocs.scoreDocs) {
// 取出查询结果
Document searchdoc = indexSearcher.doc(scoreDoc.doc);
String searchstr = searchdoc.getField("content").stringValue();
// 添加高亮
String histr = highlighter.getBestFragment(this.analyzer,
"content", searchstr);
System.out.println(histr);
}
indexSearcher.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
|
相关推荐
基于Luncene的compass框架详解-java
基于Java的Luncene的compass框架说明使用技术文档.pdf
网上MMAnalyzer资源太少了,大多数初学者都会少导入JAR包,并且网上只有 je-analysis-MMAnalyzer的例子,而没有依赖包lucene-core-2.4.1.jar je-analysis-1.5.3.jar以及 luncene-heghlighter-2.4.1.jar
luncene.Net luncene.Net luncene.Net luncene.Net
基于Java的Luncene的compass框架说明使用技术文档 一、原理描述: 二、术语解释: 三、下载地址: 四、使用流程: ……………………………………………………………………………………. 五、基于SSH的compass的...
Luncene的API,详细接受了Luncene的使用方法
luncene,paoding 分词,研究luncene需要的支撑庫,带高亮jar
luncene in action中文版 doc格式
luncene api没什么作用,你可以到官网上下啊!
Luncene2.0+Heritrix开发自己的搜索引擎,02,07,09章节的代码
luncene索引PDF、Html、word.txt luncene索引PDF、Html、word.txt luncene索引PDF、Html、word.txt
学习ASP.NET with Luncene.net入门级文章!
Lucene3.0从入门到精通,适合所有想做全文检索,垂直搜索方面的开发人员。从简单到深入,各种例子,各种注释很齐全。
luncene 简单的开原项目
luncene in action 003
luncene in action002
luncene 4.6 自定义查询评分规则
站内搜索基于luncene的java搜索
CSS与JavaScript JavaScript JQuery基础与实战 BootStrap响应式页面开发 mysql回顾及多表操作 jdbc回顾 xml和Tomcat JavaWeb的核心技术 JDBC加强及案例 ...luncene/solr使用入门 redis 淘淘商城项目实战
Luncene2.0+Heritrix开发自己的搜索引擎,项目的代码