# [MySQL] Unscharfe Suche



## -Silence- (2. Juli 2007)

Hallo zusammen,

ich bin recht bewandert mit PHP und bissl mit MySQL. Ich würde nun gern eine unscharfe Suche für eine MySQL-Datenbank realisieren. Hierzu soll also ein Suchwort auch bei einer gewissen Abweichung noch als Treffer gewertet werden. Am besten mit der Prozentualen Abweichung. In MySQL gibt es ja Soundex nur das scheint für den deutschen Sprachraum nicht so wirklich geeignet zu sein.

Hab mich auch schon über Levensthein, Kölner Phonetik, Fuzzy-Suche und SAMPA informiert. Kann es sein dass die aber ALLE nur Wörter vergleichen können? Also nicht eine Liste mit Ähnlichen Wörtern erzeugen? 

Weil ich bräuchte entweder eine MySQL-Funktion, die eine unscharfe Suche ausführt (bestenfalls mit prozentualer Abweichung in der Rückgabe) oder einen Algorithmus in PHP der mit eine Liste mit ähnlichen Wörtern zurück gibt damit ich dann mit LIKE '%.....%' die Datensätze suchen kann. Die Suche selbst soll in VARCHAR aber eigentlich auch in TEXT Spalten durchgeführt werden.

Eine Web 2.0 Idee war noch von mir bereits bei der Eingabe des Wortes eine Liste mit den durch einen Algorithmus gefundenen Wörterliste "auszuklappen". Ggf. würde sich hier auch einfach eine Rechtsschreib-Korrektur anbieten?

Dann müsste ich keine so Performancelastige(wirklich?) Abfrage machen.

Was meint Ihr?

Die zu durchsuchenden Datensätze werden so bei 100.000-1.000.000 liegen in nächster Zeit.

Danke schonmal.

Anzumerken ist noch dass die Datenbestände noch nicht existieren und somit auch ein spezieller Index angelegt werden kann wenn nötig (z.B. die Daten entsprechend kodieren mit einem Algorithmus um dann direkt darin suchen zu können)

Gruß
Silence


----------



## Michael Engel (2. Juli 2007)

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#operator_sounds-like

Findet ähnlich klingende Wörter und gibt die Übereinstimmungswarscheinlichkeiten zurück. Aber es ist für die Englische Sprache geschrieben und nicht sicher zu sagen wie sicher es mit deutsch funktioniert.


----------



## -Silence- (2. Juli 2007)

Danke aber siehe 





> In MySQL gibt es ja Soundex nur das scheint für den deutschen Sprachraum nicht so wirklich geeignet zu sein


 hab ich das bereits gefunden 

Eben kam mir auch noch die Idee wie Google die Suchanfragen zu speichern um damit irgendwie mit den Algorithmen eine lernende Suchhilfe zu basteln...


----------



## Flex (2. Juli 2007)

Wäre nicht die Volltext-Suche das was du suchst?


----------



## Michael Engel (2. Juli 2007)

huch, tut mir leid hab ich wohl überlesen.


----------



## -Silence- (2. Juli 2007)

@Felix Jacobi:

Supi danke das sieht schonmal gar nicht so schlecht aus. Das geht denke auf jeden Fall stark in die Richtung von dem was ich suche 

Denke wenn ich das mit ner AJAX Rechtsschreibkorrektur kombinier reicht das erstmal aus.

Wenn jemand doch noch ne gute Idee haben sollte: immer her damit 

Wenn aber in den nächsten Tagen nix mehr an Ideen kommt "Erledig(t)" ich das Thema...


----------

