Lucene_demo08_Hightlighter高亮
/*
* 1、使关键字变色 <font color='red'>总冠军</font>
* 2、控制摘要的大小
*/
public class HightlighterTest {
@Test
public void testSearchIndex() throws Exception {
IndexSearcher indexSearcher = new IndexSearcher(LuceneUtils.directory);
QueryParser queryParser = new MultiFieldQueryParser(Version.LUCENE_30, new String[] { "title", "content" }, LuceneUtils.analyzer);
Query query = queryParser.parse("总冠军");
TopDocs topDocs = indexSearcher.search(query, 25);
int count = topDocs.totalHits;// 总的记录数
ScoreDoc[] scoreDocs = topDocs.scoreDocs;
List<Article> articleList = new ArrayList<Article>();
// 设置高亮器
Formatter formatter = new SimpleHTMLFormatter("<font color='red'>", "</font>");// 给关键词指定前缀和后缀
Scorer scorer = new QueryScorer(query);// 指定关键词
Highlighter highlighter = new Highlighter(formatter, scorer);
Fragmenter fragmenter = new SimpleFragmenter(50);// 查询出来显示内容的长度
highlighter.setTextFragmenter(fragmenter);
for (int i = 0; i < scoreDocs.length; i++) {
int index = scoreDocs[i].doc;
Document document = indexSearcher.doc(index);
// 第一个参数 找到关键词 第二个参数 对哪个字段的关键词进行高亮
String titleText = highlighter.getBestFragment(LuceneUtils.analyzer, "title", document.get("title"));
String contentText = highlighter.getBestFragment(LuceneUtils.analyzer, "content", document.get("content"));
Article article = DocumentUtils.document2Article(document);
if (titleText != null || !titleText.equals("")) {// 保证要搜索的字段中有关键词
article.setTitle(titleText);
}
if (contentText != null || !contentText.equals("")) {
article.setContent(contentText);
}
articleList.add(article);
}
// 输出查询结果
for (Article article : articleList) {
System.out.println(article.getId());
System.out.println(article.getTitle());
System.out.println(article.getContent());
}
}
}
分享到:
相关推荐
可用lucene demo 已经有入门级pdf学习
lucene_in_action中文版lucene_in_action中文版lucene_in_action中文版lucene_in_action中文版lucene_in_action中文版lucene_in_action中文版
Lucene资料大全,包括:Lucene_in_Action书,尚学堂科技_张志宇_lucene.ppt等
大型网站站内搜索(Lucene_In_Action).pdf 大型网站站内搜索(Lucene_In_Action).pdf
lucene_jar包
Lucene_3.0_原理与代码分析
Lucene_in_Action 中文版
一个vb.net2.0做的Lucene索引测试 vb.net的东西比较少吧,我上一个
JAVA_Lucene_in_Action教程完整版
这个压缩包包含lucene_3.6.1_API,后缀格式为chm. .;...
实现的的索引建立 以及全文检索等功能……
Lucene_in_Action english版
对clucene0.9.21版本在vc6下调试demo希望对你的开发有帮助
Lucene_in_Action(中文版).pdf Lucene in Action(中文版) ----------------------------------------- Lucene in Action 中文版 第一部分 Lucene 核心 1. 接触 Lucene 2. 索引 3. 为程序添加搜索 4. ...
Lucene_in_ Action java search engine.PDF 搜索引擎教程
c#中文分词类库+可用来做搜索引擎分词+准确率90 +支持Lucene.net.rar
compass_lucene_source
Lucene_in_Action(中文版).pdf