是否有任何工具可用於識別和合並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