【问题标题】:Lucene Fuzzy Match on Phrase instead of Single WordLucene 对短语而不是单个单词的模糊匹配
【发布时间】:2010-04-06 23:41:15
【问题描述】:

我正在尝试使用 Apache Lucene 对短语“Grand Prarie”(故意拼写错误)进行模糊匹配。我的部分问题是~ 运算符仅对单个词项进行模糊匹配,并且表现为短语的邻近匹配。

有没有办法用 lucene 对短语进行模糊匹配?

【问题讨论】:

    标签: lucene solr fuzzy-search


    【解决方案1】:

    Lucene 3.0 具有支持模糊短语查询的ComplexPhraseQueryParser。这是在 contrib 包中。

    【讨论】:

      【解决方案2】:

      通过 Google 发现了这一点,并感受到了我所追求的解决方案。 就我而言,解决方案是简单地针对 solr API 重复搜索序列。 因此,例如,如果我正在寻找:title_t 以包含“dog~”和“cat~”的匹配项,我添加了一些手动代码来生成查询:

      ((title_t:dog~) and (title_t:cat~))
      

      这可能只是上述查询的内容,但链接似乎已失效。

      【讨论】:

        【解决方案3】:

        没有直接支持模糊短语,但您可以通过明确的enumerating the fuzzy terms 模拟它,然后将它们添加到MultiPhraseQuery。结果查询如下所示:

        <MultiPhraseQuery: "grand (prarie prairie)">
        

        【讨论】:

        • 您能详细说明一下吗?我不是直接使用 Lucene,而是通过 Solr。我很可能不得不开始阅读 lucene 的实际应用。我不介意更好地了解两者如何协同工作并在更基本的层面上适应它。目前,在 Solr 中,我使用 solr.PhoneticFilterFactory 分析器实现了对我来说足够有效的东西。
        猜你喜欢
        • 1970-01-01
        • 2016-10-23
        • 2014-10-22
        • 2020-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-11
        • 1970-01-01
        相关资源
        最近更新 更多