代码之家  ›  专栏  ›  技术社区  ›  Mat Mannion

Lucene有快速准确的荧光笔吗?

  •  3
  • Mat Mannion  · 技术社区  · 16 年前

    我一直在使用(Java) Highlighter for Lucene (在沙盒包中)一段时间。然而,在匹配搜索结果中的正确术语时,这并不是很准确——对于简单的查询来说,它很好地工作,例如搜索两个单独的词将突出显示结果中的两个代码片段。

    但是,它不能很好地处理更复杂的查询。在最简单的情况下,短语查询(如“stack overflow”)将匹配突出显示中所有出现的stack或overflow,这给用户留下了这样一个印象:它工作得不太好。

    我试过应用修复程序 here 但这也带来了很多性能方面的警告,而且在一天结束的时候,这显然是不可用的。对于通配符查询,性能尤其是一个问题。这是由于突出显示的工作方式;而不仅仅是处理querystring和文本,而是像lucene那样对其进行分析,然后查找lucene所做的所有匹配;不幸的是,对于某些通配符查询,它可以在大文档上查找2000+子句的匹配,而且它不是很快的enou生长激素。

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

    3 回复  |  直到 16 年前
        1
  •  2
  •   pro    16 年前

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

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

    和A back-reference 关于这个问题

        2
  •  1
  •   Sindri Traustason    16 年前

    你可以研究一下使用Solr。 http://lucene.apache.org/solr

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

        3
  •  1
  •   dlamblin    16 年前

    我一直在读这方面的文章 spanQuery 它将返回匹配术语的范围或匹配字段中的术语。