使用字符串相似性和(可选)正则表达式规则在秸秆堆中找到一根针(文档或记录)。使用戴斯系数(又称对比相似性)
它解决了许多中等规模的匹配问题 - 如果你的干草堆有 ~10 千条记录 - 如果你能在数据库层面筛选初始可能性,并仅将优秀的候选人引入应用程序内存 - 为什么不试一试呢?
require 'fuzzy_match' => true FuzzyMatch.new(['seamus', 'andy', 'ben']).find('Shamus') => "seamus" 请参阅博客文章 Ruby 中的模糊匹配。
从核心上来讲,即使您没有配置其他任何内容,也会使用字符串相似性(通过"对比距离"计算,也称为戴斯系数)来比较记录。
您可以通过 :read 选项告诉 FuzzyMatch 要使用哪个字段或方法…例如,假设您想匹配 # 这样的 Country 对象
fz = FuzzyMatch.new(Country.all, :read => :name) => # fz.find('youruguay') => #
您可以使用规则来改进默认匹配。有 3 种不同的规则。每个规则都是一个正则表达式。我们建议您 先不使用任何规则,仅在需要改进匹配、防止误报等情况下定义规则。
暂无开放 Issues,或尚未同步最近议题。