Lucene的高亮器Highlighter
Lucene的高亮器就是给搜索关键词加上HTML标签,这样在网页上显示的时候,可以有不同的突出显示效果。
高亮器会做两个工作:
1)让搜索关键词突出显示。
2)截取出现搜索关键词最多的一段文本生成摘要。
使用高亮器需要引入两个jar文件:lucene-highlighter-3.6.0.jar和lucene-memory-3.6.0.jar。
创建高亮器的代码:
//配置高亮器
//默认使用HTML的<B>标签标记关键词
//Formatter formatter = new SimpleHTMLFormatter();
//以红色字体标记关键词
Formatter formatter = new SimpleHTMLFormatter("<font color='red'>","</font>");
//用于高亮查询,query是Lucene的查询对象Query
Scorer scorer = new QueryScorer(query);
//创建一个高亮器
Highlighter highlighter = new Highlighter(formatter, scorer);
//设置文本摘要大小
Fragmenter fragmenter = new SimpleFragmenter(100);
highlighter.setTextFragmenter(fragmenter);
设置要高亮显示的内容:
//从Lucene的Document对象中取出文本内容
String content = document.get("content");
//高亮显示content
String highlighterContent = highlighter.getBestFragment(analyzer, "content", content);
//如果content中没有找到关键词,会返回空。
if(highlighterContent == null) {
highlighterContent = content;
}