3

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

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

我尝试在此处应用此修复程序,但随之而来的是很多性能警告,最终根本无法使用。性能尤其是通配符查询的问题。这是由于突出显示的工作方式;而不是只处理查询字符串和文本,它会像 Lucene 那样解析它,然后查找 Lucene 所做的所有匹配;不幸的是,这意味着对于某些通配符查询,它可以在大型文档中查找与 2000 多个子句匹配的内容,而且速度还不够快。

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

4

3 回答 3

2

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

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

以及对这个问题的反向引用

于 2009-03-16T18:44:46.017 回答
1

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

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

于 2008-09-17T16:24:03.017 回答
1

我一直在阅读该主题并遇到了spanQuery,它会返回匹配项的跨度或匹配字段中的项。

于 2008-10-02T21:49:16.913 回答