【问题标题】:How to configure Solr to use Levenshtein approximate string matching?如何配置 Solr 以使用 Levenshtein 近似字符串匹配?
【发布时间】:2009-11-17 22:24:31
【问题描述】:

Apaches Solr 搜索引擎是否提供近似的字符串匹配,例如通过 Levenshtein 算法?

我正在寻找一种按姓氏查找客户的方法。但我不能保证名称的正确性。如何配置 Solr 以便它可以找到该人 “Levenshtein”,即使我搜索“Levenstein”?

【问题讨论】:

    标签: lucene solr levenshtein-distance


    【解决方案1】:

    Mauricio 的回答很好,我唯一的“便宜”补充就是将 ~ 字符附加到您想要在进入 solr 的途中模糊匹配的所有术语。如果您使用的是默认设置,这将为您提供模糊匹配。

    【讨论】:

    • @MattMcKnight:我想在 solr 中进行相同的距离测量,但 ~ 在我的中不起作用。我尝试使用 ?q=term:"apple "~2 任何帮助
    • @iNikkz 如果你在苹果周围加上引号,我认为它会变成一个短语查询,所以 ~2 表示邻近搜索,而不是编辑距离。尝试删除引号
    • @MattMcKnight:我尝试删除引号,但结果太多,因为我在索引和查询上都使用了语音过滤。我在这里粘贴了我的问题 - [stackoverflow.com/questions/27484326/…。请你帮帮我好吗?
    【解决方案2】:

    这通常使用SpellCheckComponent 完成,默认情况下在内部使用Lucene SpellChecker,它实现了Levenshtein。

    wiki 确实很好地解释了它的工作原理,如何配置它以及可用的选项,这里没有必要重复。

    或者你可以使用Lucene's fuzzy search operator

    另一种选择是使用 phonetic filter 代替 Levenshtein。

    【讨论】:

    • Mauricio,你能检查一下模糊搜索运算符和语音过滤器的两个链接吗?两者似乎都坏了。谢谢!
    猜你喜欢
    • 2014-12-30
    • 2011-05-11
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 2016-03-28
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多