是否有任何工具可用于识别和合并MySQL表中的非精确重复项?从MySQL数据库中识别(非精确)重复项
我有一个大的数据有许多重复设置,如:
1348, Auto Motors, 12 Long Road, etc
48264, Auto Mtors, 12 Log Road, etc
82743, Ato Motoers, 12 Lng Road, etc
83821, Auto Motors, 13 Long Road, etc
92743, Auto Motors, 11 Long Road, etc
有需要合并像许多表:
- 公司
- 地址
- 电话号码
- 雇员
每行有大约100,000行和30-40列匹配(连接表)。
那么,任何人都知道一个工具来分拣出来呢?我已经安装了MySQL,PHP。如果他们愿意,我可以在/之前使用(d)MongoDB和Solr。如果需要,我愿意安装其他软件。
或者,如果我找不到处理此问题的工具,应运行哪种查询。
一个简单的find all duplicates
不会工作,因为它们不是确切的。
对于我需要尝试的所有不同组合,执行通配符搜索会非常缓慢。
使用Oliver
或Levenshtein
(MySQL)可能会工作,并有太多的数据拉到PHP(也可能非常缓慢)。
您是否正在清理数据,或只找到一次数字?如果您有时间清理,则可以使用MySQL [全文搜索](http://dev.mysql.com/doc/refman/5.0/en/fulltext-natural-language.html)进行匹配为了相关性(尽管这需要一些时间),并且允许您清理现有的数据 - 那么您可以运行一些快速比较。 – Fluffeh 2012-07-25 22:19:19
@Fluffeh只是识别数据是关键步骤,如果我能识别它,我可以构建一个合并过程。如果有一个工具可以为我合并,太棒了!全文搜索并不是真的很好,它尤其难以搜索地点和公司名称,因为它们并不总是真正的单词。 – Petah 2012-07-25 22:22:50
你看过MySQL运算符[SOUNDEX()](http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#operator_sounds-like)吗? – 2012-07-25 22:46:38