Lucene SandBox包中highlighter(高亮显示搜索结果包)存在的问题

来源:互联网 发布:java获取当前日期时间 编辑:程序博客网 时间:2024/06/07 11:32

         highlighter包从官方网站下载编译就有几个.java文件错误,估计需要完全编译整个Sandbox,而我只编译了highlighter使得有些问题,但highighter.java的getBestTextFragments()始终有问题,而且在网络上查到lucene-highlighter可以很好的解决英文高亮的问题,但是对中文分词算法的高亮就会存在严重的问题。
比如使用CJKAnalyzer(二元分词)从内容"厦门公司在厦门成立"搜索关键字"厦门",在两个"厦门"之间的所有字符都将被高亮。如:
<b>厦门公司在厦门</b>成立。

 

       通过修改highlighter类后,可以彻底解决中文的高亮问题。只需修改其方法public final TextFragment[] getBestTextFragments(TokenStream tokenStream,String text,boolean mergeContiguousFragments,int maxNumFragments)中循环部分的代码。

 

Highlighter.java代码如下:

 

 

 

原创粉丝点击