(转)lucene高亮显示 .
01.//首先获取docId的TokenStream 02.TokenStream tokenStream=TokenSources.getAnyTokenStream(reader, docId, field, analyzer); 03.//构建Fragmenter对象,用于文档切片 04.Fragmenter fragmenter = new SimpleFragmenter(100);//默认字符为100 05.//构建Scorer,用于选取最佳切片 06.Scorer fragmentScore = new QueryScorer(query); 07.//构建Formatter格式化最终显示(将字体颜色设置为红色) 08.Formatter formatter = new SimpleHTMLFormatter("<font color='red'>","</font>"); 09.//实例化Highlighter组件 10.Highlighter highlighter = new Highlighter(formatter,fragmentScore); 11.highlighter.setTextFragmenter(fragmenter); 12.// 最后一步,获取hightlightText 13.highlighter.getBestFragment(tokenStream, text);//第二个参数为原始文档信息
?
FastVectorHighlighter使用示例:?
?
注意:使用FastVectorHighlighter,在创建索引时,必须要为field指定TermVector.WITH_POSITIONS_OFFSETS和Store.YES属性