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