【发布时间】:2010-04-06 23:41:15
【问题描述】:
我正在尝试使用 Apache Lucene 对短语“Grand Prarie”(故意拼写错误)进行模糊匹配。我的部分问题是~ 运算符仅对单个词项进行模糊匹配,并且表现为短语的邻近匹配。
有没有办法用 lucene 对短语进行模糊匹配?
【问题讨论】:
标签: lucene solr fuzzy-search
我正在尝试使用 Apache Lucene 对短语“Grand Prarie”(故意拼写错误)进行模糊匹配。我的部分问题是~ 运算符仅对单个词项进行模糊匹配,并且表现为短语的邻近匹配。
有没有办法用 lucene 对短语进行模糊匹配?
【问题讨论】:
标签: lucene solr fuzzy-search
Lucene 3.0 具有支持模糊短语查询的ComplexPhraseQueryParser。这是在 contrib 包中。
【讨论】:
通过 Google 发现了这一点,并感受到了我所追求的解决方案。 就我而言,解决方案是简单地针对 solr API 重复搜索序列。 因此,例如,如果我正在寻找:title_t 以包含“dog~”和“cat~”的匹配项,我添加了一些手动代码来生成查询:
((title_t:dog~) and (title_t:cat~))
这可能只是上述查询的内容,但链接似乎已失效。
【讨论】:
没有直接支持模糊短语,但您可以通过明确的enumerating the fuzzy terms 模拟它,然后将它们添加到MultiPhraseQuery。结果查询如下所示:
<MultiPhraseQuery: "grand (prarie prairie)">
【讨论】: