MySQL Levenshtein-Funktion für optimierte String-Vergleiche mit PHP
Im bereitgestellten Code wird die Funktion levenshtein() von PHP verwendet, um den Bearbeitungsabstand zu berechnen zwischen der Eingabe eines Benutzers ($word) und Begriffen in einer Worttabelle. Der Code filtert dann die Tabelle, um Begriffe mit einem Bearbeitungsabstand von 0 bis 4 von der Benutzereingabe zu finden.
Eine Möglichkeit, diesen Prozess zu optimieren, ist die Verwendung einer Levenshtein-Funktion in MySQL selbst. MySQL bietet eine alternative Implementierung des Levenshtein-Algorithmus namens EDIT_DISTANCE. Durch die Nutzung dieser Funktion können Sie die Zeichenfolgenvergleiche direkt in der Datenbank durchführen, sodass PHP nicht alle Begriffe durchlaufen und die Bearbeitungsabstände berechnen muss.
Um diese Optimierung zu implementieren, können Sie die folgende Abfrage verwenden:
$word = mysql_real_escape_string($word); mysql_query("SELECT `term` FROM `words` WHERE EDIT_DISTANCE('$word', `term`) BETWEEN 0 AND 4");
In dieser Abfrage berechnet EDIT_DISTANCE den Bearbeitungsabstand zwischen $word und jedem Begriff in der Worttabelle. Die Bedingung ZWISCHEN 0 UND 4 filtert die Ergebnisse, um Begriffe mit einem Bearbeitungsabstand von 0 bis 4 von der Benutzereingabe einzuschließen.
Durch die Verwendung dieser optimierten Abfrage können Sie die Anzahl der Datenbankabfragen reduzieren und die Leistung von verbessern Ihre Bewerbung.
Das obige ist der detaillierte Inhalt vonWie kann die EDIT_DISTANCE-Funktion von MySQL String-Vergleiche in PHP optimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!