Highlighter highlighter = new Highlighter(new SimpleHTMLFormatter(
"red", ""), new QueryScorer(query));
highlighter.setTextFragmenter(new SimpleFragmenter(10));
Analyzer analyzer = new IK_CAnalyzer();
for (int i = 0; i < hits.length(); i++) {
String text = hits.doc(i).get("contents");
TokenStream tokenStream = analyzer.tokenStream("contents",
new StringReader(text));
String result = highlighter.getBestFragments(tokenStream, text, 4,
"");//对查找到的文件进行加亮处理(用【】包含起来)
System.out.println(" 与查询相关内容为:"+"/n"+result);
System.out.println("文件为:"+hits.doc(i).get("filename"));
}
"red", ""), new QueryScorer(query));
highlighter.setTextFragmenter(new SimpleFragmenter(10));
Analyzer analyzer = new IK_CAnalyzer();
for (int i = 0; i < hits.length(); i++) {
String text = hits.doc(i).get("contents");
TokenStream tokenStream = analyzer.tokenStream("contents",
new StringReader(text));
String result = highlighter.getBestFragments(tokenStream, text, 4,
"");//对查找到的文件进行加亮处理(用【】包含起来)
System.out.println(" 与查询相关内容为:"+"/n"+result);
System.out.println("文件为:"+hits.doc(i).get("filename"));
}
本文介绍如何使用Lucene实现搜索结果的高亮显示。通过创建Highlighter对象并设置SimpleHTMLFormatter,可以对查询到的内容进行高亮处理。此外,还介绍了如何利用IK_CAnalyzer进行文本分析,并获取最佳片段来展示搜索结果。
184

被折叠的 条评论
为什么被折叠?



