【问题标题】:Is there a fast, accurate Highlighter for Lucene?是否有适用于 Lucene 的快速、准确的荧光笔?
【发布时间】:2010-09-10 01:49:38
【问题描述】:

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

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

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

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

【问题讨论】:

  • “Lucene 荧光笔”链接目前已损坏。
  • 感谢您指出这一点,我已经修复了链接。
  • 现在 Lucene 3.0.0 已经发布,您应该会发现将所有内容升级到该版本将使一切正常运行。但是 - 请注意,荧光笔现在也依赖于来自 contrib 的 lucene-memory(这只会在突出显示完全匹配时显示)

标签: java lucene


【解决方案1】:

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

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

back-reference 这个问题

【讨论】:

  • 感谢彼得指出这一点,我会试试看它是否对我们有用。
【解决方案2】:

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

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

【讨论】:

  • 谢谢,看看 Solr - 我想我过去总是将它与 Nutch 混淆,并认为它们是同一个东西,我很傻。我注意到在 Solr 文档中,它似乎将 PhraseHighlighter 和标准荧光笔分开,所以恐怕我没有太大的信心 :(
  • 不幸的是,solr 荧光笔只是委托给 Lucene 沙盒中的荧光笔 - 它没有做任何聪明的事情:(
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 2015-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多