用词组代替单词的Lucene模糊匹配

时间:2010-04-06 23:41:16

标签: lucene solr fuzzy-search

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

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

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:2)

没有对模糊短语的直接支持,但您可以通过显式enumerating the fuzzy terms进行模拟,然后将其添加到MultiPhraseQuery。生成的查询看起来像:

<MultiPhraseQuery: "grand (prarie prairie)">

答案 2 :(得分:1)

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

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

可能只是上面的查询,但链接似乎已经死了。