vsql_fuzzystrmatch 是 PostgreSQL fuzzystrmatch 扩展的移植版本。
它回答关于一对字符串的两个不同问题:它们听起来是否相似,以及它们之间
相差多少次编辑。可用于姓名匹配、拼写纠正,以及对手工录入的记录去重。
如果您使用安装脚本、Docker 镜像或发行版压缩包安装了 VillageSQL,
vsql_fuzzystrmatch.veb 已经位于服务器的 lib/veb/ 目录中。
用一条语句将它安装到服务器中:
确认它已存在:
要自行构建,请按照存储库中的
构建说明进行操作。
新增内容
同一个姓名的两种拼写产生同一个 Soundex 码,difference 以满分 4 为
匹配打分:
编辑距离则统计改动次数:
Metaphone 处理被拼写掩盖的发音,例如 Thompson 中的 Th:
MySQL 自带一个 SOUNDEX(),当您不加限定名写这个名称时,内置函数
优先。两者结果不同:SOUNDEX('Ashcraft') 返回 A2613,而
vsql_fuzzystrmatch.soundex('Ashcraft') 返回 A261。MySQL 的版本在
文档中说明返回任意长度的字符串,而扩展的版本遵循四字符的 Soundex
定义。请用扩展名限定调用,以得到您想要的那个。这里的其他函数都
没有被遮蔽。
levenshtein_less_equal 在真实距离超过您给定的上限时立即停止,然后
返回上限加 1,无论真实距离是多少。上限为 2 时,相差 3 的一对返回 3,
相差 7 的一对也返回 3。请把”上限加 1”理解为”比您询问的范围更远”。
另请参阅