参考文献: https://www.integer-net.com/how-search-algorithms-work-levenshtein-distance/
搜索算法的工作原理:Levenshtein距离
在打印错误时,在线商店中进行良好的产品搜索是容忍的,即使没有100%的匹配,它也会找到匹配的产品,类别和其他内容。为了实现这一点,有一种算法可以将搜索项与可搜索的内容或字符串进行比较。搜索项和字符串(例如产品名称)之间的差异用Levenshtein距离测量 。
Levenshtein距离解释
Levenshtein距离描述了将字符串打开到另一个字符串所需的最小字符编辑数。可能的编辑是插入,删除和替换。Levenshtein距离以俄罗斯数学家Vladimir Levenshtein(1935-2017)命名,他于1965年开发。
例子
Levenshtein与Lewnstein之间的距离为2。
0. Lewenstein
1. Levenstein(用v代替w)
2。Levenshtein(插入h)
两个相同的术语,例如同形异义词匹配(游戏)和匹配(婚姻的候选者),Levenshtein距离为0。
Levenshtein距离和模糊搜索
例如,在IntegerNet_Solr中,我们为模糊搜索的灵敏度提供配置选项。如果输入的值为1,则搜索的灵敏度非常高,不会执行模糊搜索。我们允许的最低值是0.在这种情况下,灵敏度非常低,基本上任何产品都被认为是任何一个术语的匹配。从客户的角度来看,在您的在线商店中没有帮助。
因此,通常建议在0.7和0.9之间的灵敏度。
一般规则是:搜索的灵敏度越高,Levenshtein距离的容忍度越低。
搜索的灵敏度越低,Levenshtein距离的容忍度越高。
Magento中的模糊搜索
Magento的默认搜索无法执行模糊搜索。它仅在产品目录中搜索搜索词与产品数据中的字符串之间的100%匹配。如果没有100%匹配,则会显示空的搜索结果页面。对于该在线商店的用户,此空白页面没有帮助。
因此,改进产品搜索的扩展和服务对您的商店来说是一个有价值的补充。它们减少了目录搜索不足的潜在挫折感,并引导客户使用他们正在寻找的产品。
模糊搜索的局限性
如果搜索词应返回在其属性中甚至没有与搜索词进行远程匹配的产品,则可以将模糊搜索配置为不敏感,最终也会显示此产品。但是,由于所有添加的不相关搜索结果,搜索不再有用。
对于这种情况,同义词是正确的手段。