如何配置 Solr 使用 Levenshtein 近似字符串匹配?
Apache Solr 搜索引擎是否提供近似字符串匹配(例如通过 Levenshtein 算法)?
我正在寻找一种按姓氏查找客户的方法。但我不能保证名称的正确性。我如何配置 Solr 以便它能找到这个人 即使我搜索“Levenshtein”,也是“Levenshtein”吗?
Does Apaches Solr search engine provide approximate string matches, e.g. via Levenshtein algorithm?
I'm looking for a way to find customers by last name. But I cannot guarantee the correctness of the names. How can I configure Solr so that it would find the person
"Levenshtein" even if I search for "Levenstein" ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
通常,这是通过 SpellCheckComponent 完成的,它在内部使用 Lucene SpellChecker 默认情况下,它实现了 Levenshtein。
wiki 确实很好地解释了它的工作原理、如何配置它以及可用的选项,不点在这里重复一下。
或者您可以只使用 Lucene 的模糊搜索运算符。
另一种选择是使用 语音过滤器而不是编辑。
Typically this is done with the SpellCheckComponent, which internally uses the Lucene SpellChecker by default, which implements Levenshtein.
The wiki really explains very well how it works, how to configure it and what options are available, no point repeating it here.
Or you could just use Lucene's fuzzy search operator.
Another option is using a phonetic filter instead of Levenshtein.
Mauricio 的回答很好,我唯一的“廉价”添加就是将 ~ 字符附加到您想要在进入 solr 时进行模糊匹配的所有术语。如果您使用默认设置,这将为您提供模糊匹配。
Great answer by Mauricio, my only "cheapo" addition is to just append the ~ character to all terms that you want to fuzzy match on the way in to solr. If you are using the default set up, this will give you fuzzy match.