是否有快速,准确的Lucene荧光笔?

我已经使用(Java) Highlighter for Lucene (在Sandbox包中)一段时间了。 但是,在匹配搜索结果中的正确术语时,这并不是非常准确 – 它适用于简单查询,例如,搜索两个单独的单词将突出显示结果中的两个代码片段。

但是,对于更复杂的查询,它不能很好地运行。 在最简单的情况下,诸如“Stack Overflow”之类的短语查询将匹配突出显示中所有出现的Stack或Overflow,这给用户留下了不能很好地工作的印象。

我尝试在这里应用修复程序,但这带来了很多性能警告,并且在一天结束时只是普遍无法使用。 性能尤其是通配符查询的问题。 这是由于突出显示的工作方式; 它不是仅仅处理查询字符串和文本,而是像Lucene那样解析它,然后查找Lucene所做的所有匹配; 不幸的是,这意味着对于某些通配符查询,它可以在大型文档上查找与2000+子句的匹配,并且它的速度不够快。

有没有更快的实现准确的荧光笔?

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

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

并且对这个问题的反向引用

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

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

我一直在阅读这个主题,并遇到了spanQuery ,它将返回匹配的字段中匹配的术语或术语的范围。