Ich versuche gerade eine fehlertolerante Suche zu konzipieren, bei der ähnliche Suchwörter aufgelistet werden sollen, falls die Suche ohne Treffer ist.
Prüfen ob die Suche ein Ergebnis liefert ist an sich ja kein Problem, aber wie könnte ich die Vorschläge generieren lassen?
Habt ihr eine Idee? Scheinbar finden nachfolgende PHP Funktionen bei einer fuzzy-Suche Verwendung:
soundex() - Gibt den Soundex-Schlüssel als Zeichenkette zurück.
levenshtein() - Berechnet die Levenshtein-Distanz zwischen zwei Strings
metaphone() - Berechnet den Metaphone-Schlüssel eines Strings
similar_text() - Berechnet die Ähnlichkeit zweier Zeichenketten
Wie könnte man sowas mit der Suchtabelle von we umsetzen?
Fehlertolerante Suche | Fuzzy Search
Fehlertolerante Suche | Fuzzy Search
LG Fatih
Re: Fehlertolerante Suche | Fuzzy Search
Für den Anfang würde ich mir eine komplette Wortliste (keine doppelten) aus den relevanten DB-Feldern ziehen (auch nur die Wörter mit mindestens 3 Buchstaben), den Suchbegriff per levenshtein vergleichen (beides lowercase) und die Suche bei Distanz= 1 abbrechen. Die Wortliste eventuell vorsortiert nach Anzahl der Buchstaben und nur plusminus 2 vergleichen.
Du kannst ja probieren, ob du mit einem Array für die Wortliste auskommst, falls nicht, dann würde ich die Wortliste auf mehrere Textfiles verteilen (z.b. wortlänge) . Bei einer großen Datenmenge wird das aber wohl nicht ausreichen. Wie man das jetzt aber sinnvoll mit Hashing kombiniert, fällt mir spontan auch nicht ein. Frage ist auch, wie oft diese Wortliste aktualisiert wird (evtl. über hooks oder update-Läufe)
LG Sophia
Du kannst ja probieren, ob du mit einem Array für die Wortliste auskommst, falls nicht, dann würde ich die Wortliste auf mehrere Textfiles verteilen (z.b. wortlänge) . Bei einer großen Datenmenge wird das aber wohl nicht ausreichen. Wie man das jetzt aber sinnvoll mit Hashing kombiniert, fällt mir spontan auch nicht ein. Frage ist auch, wie oft diese Wortliste aktualisiert wird (evtl. über hooks oder update-Läufe)
LG Sophia
-
- Senior Member
- Beiträge: 3735
- Registriert: Do 1. Jan 1970, 02:00
- Wohnort: Karlsruhe
- Kontaktdaten:
Re: Fehlertolerante Suche | Fuzzy Search
Hi,
was man auch machen kann ist den Webservice "Spelling Suggestion" von Yahoo einzubinden. Haben wir auf der webEdition-Website gemacht:
http://www.webedition.de/de/Suche.php?w ... t_search=1
Dirk
was man auch machen kann ist den Webservice "Spelling Suggestion" von Yahoo einzubinden. Haben wir auf der webEdition-Website gemacht:
http://www.webedition.de/de/Suche.php?w ... t_search=1
Dirk
Re: Fehlertolerante Suche | Fuzzy Search
@Sophia
Die deutsche Sprache ist bei soundex wohl nicht so optimal, die Kölner Phonetik muss da herhalten
http://de.wikipedia.org/wiki/K%C3%B6lner_Phonetik
@ Dirk
Das ist natürlich sehr lässig
War das nicht auch irgendwo dokumentiert? Ich glaubte ähnliches mal in der Doku mit google gesehen zu haben, konnte es aber nicht wieder finden. Dumm nur, dass man hier auch auf Javascript angewiesen ist... Aber besser als gar keine Phonetik!
Wäre das nicht auch noch mit Echtzeitvorschlägen für das Formularfeld kombinierbar?
Hast du da irgendwo ein Template zur Einsicht wie das aufgebaut ist?
Edit: Das hab ich von dir gefunden, mittlerweile scheint es ja auch in deutsch zu gehen http://we-devedge.info/samples/?we_objectID=1248.
Magst du das irgendwann aktualisieren oder ist die Seite "geparkt"?
Die deutsche Sprache ist bei soundex wohl nicht so optimal, die Kölner Phonetik muss da herhalten
http://de.wikipedia.org/wiki/K%C3%B6lner_Phonetik
@ Dirk
Das ist natürlich sehr lässig
War das nicht auch irgendwo dokumentiert? Ich glaubte ähnliches mal in der Doku mit google gesehen zu haben, konnte es aber nicht wieder finden. Dumm nur, dass man hier auch auf Javascript angewiesen ist... Aber besser als gar keine Phonetik!
Wäre das nicht auch noch mit Echtzeitvorschlägen für das Formularfeld kombinierbar?
Hast du da irgendwo ein Template zur Einsicht wie das aufgebaut ist?
Edit: Das hab ich von dir gefunden, mittlerweile scheint es ja auch in deutsch zu gehen http://we-devedge.info/samples/?we_objectID=1248.
Magst du das irgendwann aktualisieren oder ist die Seite "geparkt"?
LG Fatih
Re: Fehlertolerante Suche | Fuzzy Search
Langfristig halte ich diese Phonetische Suchsache für sehr sinnvoll, evtl. stell ich das mal mit den errungenen Infos als Featurewunsch bei Mantis rein.
Bei typo3 und drupal kann man sich sicher was abschauen
http://drupal.org/node/247482
Bei typo3 und drupal kann man sich sicher was abschauen
http://drupal.org/node/247482
LG Fatih
Re: Fehlertolerante Suche | Fuzzy Search
Bei Eigennamen ist eine phonetische Suche bestimmt super,Wenn es um Verschreiben (Buchstaben vertauschen, verdoppeln, auslassen) normaler Wörter geht, weiß ich nicht. (Wollte übrigens nicht soundex, sondern levensthein nehmen). Kommt alles auf den Einsatzzweck und die Datenmenge an.
LG Sophia
LG Sophia
-
- Senior Member
- Beiträge: 3735
- Registriert: Do 1. Jan 1970, 02:00
- Wohnort: Karlsruhe
- Kontaktdaten:
Re: Fehlertolerante Suche | Fuzzy Search
Hi,
Dirk
Also JS brauch man dazu nicht .. kann alles serverseitig erledigt werden.Dumm nur, dass man hier auch auf Javascript angewiesen ist...
Der Inhalt soll ja vollständig in die webEdition-Dokumentation umziehen ... wenn ich dann bei diesem Beispiel bin, wird es aktualisiert.Edit: Das hab ich von dir gefunden, mittlerweile scheint es ja auch in deutsch zu gehen http://we-devedge.info/samples/?we_objectID=1248.
Magst du das irgendwann aktualisieren oder ist die Seite "geparkt"?
Dirk
Wer ist online?
Mitglieder in diesem Forum: Bing [Bot] und 16 Gäste