关于java:Lucene是否有快速,准确的荧光笔?

关于java:Lucene是否有快速,准确的荧光笔?

Is there a fast, accurate Highlighter for Lucene?

我一直在使用Lucene的(Java)Highlighter(在Sandbox程序包中)。但是,在搜索结果中匹配正确的词时,这并不是很准确-在简单查询中效果很好,例如,搜索两个单独的单词会在结果中突出显示两个代码片段。

但是,它不适用于更复杂的查询。在最简单的情况下,短语查询(例如" Stack Overflow")将匹配突出显示中所有出现的Stack或Overflow,这给用户留下了很好的印象。

我尝试在此处应用此修复程序,但这带来了许多性能方面的警告,并且最终还是根本无法使用。在通配符查询中,性能尤其成问题。这是由于突出显示的工作方式;而不是像Lucene那样解析查询字符串和文本,而是查找Lucene进行的所有匹配;不幸的是,这意味着对于某些通配符查询,它可以在大型文档中寻找与2000+子句的匹配项,而且速度不够快。

是否可以更快地实施准确的荧光笔?


有一个新的更快的荧光笔(需要进行修补,但将成为2.9版的一部分)

https://issues.apache.org/jira/browse/LUCENE-1522

以及对该问题的反向引用


我一直在阅读该主题,并遇到spanQuery,它将向您返回匹配项或匹配字段中项的范围。


您可以考虑使用Solr。 http://lucene.apache.org/solr

Solr是一种使用Lucene并支持突出显示的通用搜索应用程序。 Solr中的突出显示可能可用作Solr之外的API。 您也可以看看Solr如何做到这一点。


推荐阅读