Lucene的高亮器Highlighter

时间:2022-09-27 03:12:42

 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;
}