MySQL / Phonetische suche
DerLernende
- datenbank
1 Rouven0 DerLernende0 Rouven0 Alexander Brock0 Rouven
0 DerLernende
-1 Alexander Brock
Hallo ......
gibt es bei MySQL sowas wie eine phonetische suche?
Das man z.b teilstrings mit dem %-zeichen sucht weiss ich,
aber ob MySQL auch einen Algorithmus für eine phonetische besitzt weiss
ich nicht.
Wenn ja, kann mir da einer Weiterhelfen wie die (Syntax) oder was auch immer für diese suche ist?
Oder einen link wo ich das nachlesen kann?
Ich bedanke mich rechtherzlich.
Schönen Sonntag noch.
Hi,
MySQL unterstützt zumindest mal SOUNDEX, leider fehlen andere wie z.B. PHONIX.
Soundex gehört in MySQL in die normale Kategorie der String-Funktionen.
Beachte das (logische) Verhalten bei Umlauten.
MfG
Rouven
Danke....
ich habe zwar wirklich nur die grundfunktionen von MySQL drauf.
Aber wie setzte ich z.b das SOUNDEX auf meine Suche auf?
Wenn ich z.b die länge eines Datensatz haben möchte mache ich das so:
select length(name) from kunden where name="Gertrude";
Aber wie soll ich das SOUNEX einsetzten um z.b einen Datensatz aus der DB zu suchen die ähnlich "klingen"?
Habe alle möglichen Combis ausprobiert, ohne Erfolg.
Genau wie diese TRIM[] anweisung, wie setzt ich das auf eine ganz normale select anweisung auf?
Kann mir das einen anhand eines Beispiels Posten?
Danke für deine @ eure Hilfe
Hi,
Soundex ist ein Algorithmus der aus einem Klangbild eine Zahlenfolge erzeugt. Wenn zwei Worte ein ähnliches Klangmuster haben bekommen sie den selben Soundex-Code.
Night = Nite usw.
In deinem Vergleich musst du also genau das einsetzen:
SELECT name
FROM personen
WHERE SOUNDEX(name) = SOUNDEX(suchbegriff)
MfG
Rouven
Hallo Forum,
In deinem Vergleich musst du also genau das einsetzen:
SELECT name
FROM personen
WHERE SOUNDEX(name) = SOUNDEX(suchbegriff)
Wenn ein Index auf name liegt, wird der hier dann verwendet?
Wenn nicht, kann man einen Index auf das Funktionsergebnis legen?
Gruß
Alexander Brock
Hi Alexander,
Wenn ein Index auf name liegt, wird der hier dann verwendet?
oh, weiß ich nicht, aber intuitiv sehe ich da schwarz. Woher soll das DBMS wissen was du alles mit der Spalte vorhast. Zumal Soundex da ja ziemlich tief in den Wert eingreift und nicht einfach nur irgendwelche Vergleiche o.ä. anstellt.
Wenn nicht, kann man einen Index auf das Funktionsergebnis legen?
...ich vermute nein. Ich nehme an, wenn es performance-kritisch ist müsste man eine Dummy-Spalte hierfür anlegen in der man den Rückgabewert ablegt und dann darauf den Index erstellen.
MfG
Rouven
Vielen Vielen Dank!
Ich finde es einfach Super das einem hier so Schön geholfen wird!
Nochmal Vielen Dank und Schönen Sonntag noch!
Hallo Forum,
gibt es bei MySQL sowas wie eine phonetische suche?
Keine Ahnung, aber durch kurzes Suchen habe ich ein Posting im MySQL Forum gefunden, das dir vielleicht helfen könnte.
Gruß
Alexander Brock