我的任务是确定一种解决方案,以帮助在将新用户记录插入 MySQL 数据库时识别可能的重复记录。有谁知道任何便宜的,最好是免费的解决方案?
我需要检测的重复类型是常见形式的缩写英文名称——例如 Bill 代表 William,Bob 代表 Robert 等——以及拼写错误和普通重复。我读过一些关于使用 Lucene 的内容,但它似乎更适合全文搜索,我不确定它是否支持我所追求的 dupliatcae 名称匹配?
我的任务是确定一种解决方案,以帮助在将新用户记录插入 MySQL 数据库时识别可能的重复记录。有谁知道任何便宜的,最好是免费的解决方案?
我需要检测的重复类型是常见形式的缩写英文名称——例如 Bill 代表 William,Bob 代表 Robert 等——以及拼写错误和普通重复。我读过一些关于使用 Lucene 的内容,但它似乎更适合全文搜索,我不确定它是否支持我所追求的 dupliatcae 名称匹配?
这可能更好地放在堆栈溢出上。这不是您将使用 MySQL 完成的事情。您所说的在搜索中被称为“词干提取”。类似于匹配常规单词的不同变形,例如 run => runs ,ran。
我不知道有任何这样的专有名称应用程序,但是当您找到一个可以与您的主要应用程序一起使用以在将记录插入数据库之前“规范化”名称的应用程序时。Mysql、sqlserver、mongo 等等。数据库技术无关紧要,因为您的任务超出了存储数据/文档的范围。
Lucene 将是完成您的任务的更好工具。但我不能说它具有预先打包的能力来阻止你想要的名字。
编辑
考虑之后,我想我说错了,因为 Lucene 本身就是一种“更好”的方法,可以满足您的需求。我的理解是词干分析器存在于核心 lucene 之外,然后将对“bob”的搜索代理到(“bob”或“robert”)以馈入 lucene 引擎。