2017-03-11 2 views
1

Ich habe eine MySQL-Datenbank mit etwa 10 Millionen Titel. Nun, wenn ich einen neuen Titel hinzufügen möchte, besteht die Chance, dass der Titel bereits existiert, aber etwas anders geschrieben. Ein Beispiel:String Ähnlichkeit Metriken zwischen n Strings

Overview on +-Trees.... 
Overview on B-Tree ..... 
Overview on $({\rm B}^+)$-Trees.... 

Alle drei Titel sind anders, wenn ich ihnen bin versucht, genau zu passen, aber sie beziehen sich auf die gleiche Veröffentlichung.

Jetzt könnte ich etwas wie Levenshtein für die Berechnung der Ähnlichkeit verwenden. Aber mit 10 Millionen + Titeln könnte es zu lange dauern, um jede Entfernung zu berechnen.

Nun, was ich dachte, war, ob es eine Art von Metrik gibt, die ich auf alle Strings als Vorberechnung anwenden könnte. Zum Beispiel berechnen Sie die Anzahl der Wörter, so dass ich nur Titel mit ähnlicher Wortlänge sammeln. Das Ziel wäre, die Anzahl der Levenshtein-Vergleiche von 10 Millionen auf 100.000 oder weniger zu reduzieren.

Antwort

0

Sie können nach Exaction String suchen, indem Sie BINARY in mysql verwenden. Es wird Ergebnisse geben, ob es genau übereinstimmte oder nicht

select * from table where BINARY column_name = "matching_value"; 
Verwandte Themen