Frage

Ich wurde beauftragt, eine Lösung zu identifizieren, um mögliche Duplikate zu identifizieren, wenn neue Benutzeraufzeichnungen in eine MySQL -Datenbank eingefügt werden. Kennt jemand billige, vorzugsweise kostenlose Lösungen?

Die Art von Duplikaten, die ich erkennen muss, sind gemeinsame Formen von verkürzten englischen Namen - wie Bill für William, Bob für Robert usw. - zusammen mit Rechtschreibfehler sowie einfachen Duplikaten. Ich habe ein bisschen über die Verwendung von Lucene gelesen, aber es scheint mehr für die Suche nach Volltexten zu sein, und ich bin mir nicht sicher, ob es den dupliatcae -Namen, den ich nachging, unterstützt?

War es hilfreich?

Lösung

Dies könnte besser beim Stapelüberlauf platziert werden. Das werden Sie mit MySQL nicht erreichen. Was Sie sprechen, wird als "Stamm" auf der Suche bezeichnet. Ähnlich wie bei verschiedenen Konjugationen eines regulären Wortes z. B. run => läuft, ran.

Ich kenne keine solchen Anwendungen für Eigennamen aus der Hand, aber wenn Sie eine finden, die neben Ihrer primären Anwendung sitzt, um den Namen zu "normalisieren", bevor Sie den Datensatz in Ihre Datenbank einfügen. Mysql, SQLServer, Mongo, was auch immer. Die DB -Technologie ist irrelevant, da Ihre Aufgabe außerhalb des Umfangs des Speichers von Daten/Dokumenten liegt.

Lucene wäre ein besseres Werkzeug für Ihre Aufgabe. Aber ich konnte nicht mit seiner vorverpackten Fähigkeit sprechen, Namen einzudämmen, wie Sie es wollen.

Bearbeiten

Nachdem ich darüber nachgedacht habe, denke ich, dass ich falsch angegeben habe, als ich sagte, Lucene wäre ein "besserer" Ansatz für sich für das, was Sie wollen. Mein Verständnis ist, dass Stemmers außerhalb von Core Lucene existieren und dann eine Suche nach "Bob" in ("Bob" oder "Robert") in den Lucene -Motor einfügen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top