Schema corde corrispondenza per Limited, Ltd, Incorporated, Inc, Etc
-
12-10-2019 - |
Domanda
Stiamo facendo un sacco di lavoro verso il tentativo di conciliare circa 1.000 nomi di produttore duplicati e 1.000.000 di codici duplicati. Una cosa che ha messo a punto è come "match" cose come "limitata" vs "Ltd." vs "Ltd"
Lo scopo è per l'applicazione di conciliare questi elementi abbinati in un formato standard. Quindi:
ACME Ltd. ACME limitata ACME Ltd
dovrebbero essere tutti riconciliati in ACME srl.
Questo sarà usato anche per prevenire entrare duplicati aggiuntivi in ??futuro.
Qualche suggerimento su come eseguire questa pattern matching in SQL Server? Eventuali algoritmi noti per trovare oggetti con equivalenze mappate, ecc ...?
Grazie!
Eric.
Soluzione
Come su una tabella che elenca ciò che si desidera in una colonna e variazioni nel prossimo?
Ltd Limited
Ltd Ltd.
St Street
St Str.
Quindi, se si trova una corrispondenza sulla seconda colonna, si cambia alla prima. Si può richiedere diverse iterazioni, come si trova altre alternative.
Altri suggerimenti
SQL Server ricerca full-text è possibile utilizzare sinonimi:
Per ogni full-text di lingua, SQL Server fornisce anche un file in cui è possibile opzionalmente definire sinonimi lingua specifici per estendere l'ambito di query di ricerca (un file del Thesaurus).
Nel tuo caso si potrebbe aggiungere una sezione simile alla seguente:
<expansion>
<sub>Limited</sub>
<sub>Ltd</sub>
<sub>Ltd.</sub>
</expansion>
Ecco un link che va più in dettaglio su come modificare il file del thesaurus. Questo può funzionare per ciò che si sta cercando di fare ...
SQL Server offre anche alcuni limitati pattern matching utilizzando LIKE
. Suggerirei guardando oltre le opzioni offre per vedere se saranno sufficienti per le vostre esigenze.
Se LIKE
non è sufficiente si può guardare rel="nofollow"> sempre che vi permetterà di utilizzare le espressioni regolari. Questo vi permetterà di abbinare schemi molto più complessa ...