【发布时间】:2009-11-17 22:24:31
【问题描述】:
Apaches Solr 搜索引擎是否提供近似的字符串匹配,例如通过 Levenshtein 算法?
我正在寻找一种按姓氏查找客户的方法。但我不能保证名称的正确性。如何配置 Solr 以便它可以找到该人 “Levenshtein”,即使我搜索“Levenstein”?
【问题讨论】:
标签: lucene solr levenshtein-distance
Apaches Solr 搜索引擎是否提供近似的字符串匹配,例如通过 Levenshtein 算法?
我正在寻找一种按姓氏查找客户的方法。但我不能保证名称的正确性。如何配置 Solr 以便它可以找到该人 “Levenshtein”,即使我搜索“Levenstein”?
【问题讨论】:
标签: lucene solr levenshtein-distance
Mauricio 的回答很好,我唯一的“便宜”补充就是将 ~ 字符附加到您想要在进入 solr 的途中模糊匹配的所有术语。如果您使用的是默认设置,这将为您提供模糊匹配。
【讨论】:
这通常使用SpellCheckComponent 完成,默认情况下在内部使用Lucene SpellChecker,它实现了Levenshtein。
wiki 确实很好地解释了它的工作原理,如何配置它以及可用的选项,这里没有必要重复。
或者你可以使用Lucene's fuzzy search operator。
另一种选择是使用 phonetic filter 代替 Levenshtein。
【讨论】: