Seite 1 von 1

Probleme mit Fuzzy Search

Verfasst: Mo 19. Aug 2013, 18:08
von Kopernikus
Ich habe ein Problem mit der Fehlertolleranten Suche (Fuzzy Search).

Beispiel: Ich habe einen Produktenamen, der z.B. "Terra-C" heisst. Gebe ich im Suchfeld Terra-C ein, findet die Suche sofort den gewünschten Artikel. Gebe ich allerdings "Terra C" ein, ist die Suche offenbar bereits überfordert und findet diesen Artikel überhaupt nicht mehr.

Gibt es eine Möglichkeit dieses Problem zu lösen?

Re: Probleme mit Fuzzy Search

Verfasst: Mo 19. Aug 2013, 18:16
von Kopernikus
Hoopala! Jetzt bin ich per Zufall über einen Bug gestolpert. Die Frage ist, ob das nur bei mir so ist?

Problem machen offenbar einige Umlaute. Wenn ich z.B. "Krähe" eingebe, dann regnet es die bekannten preg_split Fehler (php 5.3 Problem?)

Diesen Fehler könnt Ihr hier sehen:

http://www.engelis-naturshop.ch/advance ... Kr%C3%A4he

Wäre super, wenn Ihr mir hierfür einen Fix hättet :)

EDIT:

Müsste eventuell hier (/includes / classes / fuzzy_search.php) etwas ergänzt werden? :roll:

Code: Alles auswählen

$split_content = preg_split('|'.str_replace('|', '\\|', SEARCH_SPLIT_PRODUCT_CHARS).'|', $word_string);

Re: Probleme mit Fuzzy Search

Verfasst: Di 20. Aug 2013, 10:57
von yogi
Moin,

also bei mir in der Entwicklungsumgebung kann ich den Fehler so nicht reproduzieren. Und auch im unserem Webs Demo Shop kann ich den Fehler nicht reproduzieren.
http://demo.webs.de/advanced_search_res ... Kr%C3%A4he

Was ist denn bei dir im Backend bei Konfiguration->Such Optionen->"Fuzzy-Search: Trennzeichen zur Teilung" angegeben? Ich vermute mal da fehlt ein "]" oder so....

Re: Probleme mit Fuzzy Search

Verfasst: Di 20. Aug 2013, 11:39
von Kopernikus
Hi,

Du hast recht, ich hatte (weil ich wegen dem Bindestrich verschiedene Einstellungen testete), nur noch die leeren Klamern gesetzt [ ]
Mit der Einstellung [ ,.] klappts wieder.

Nur eben, wenn ich ein Wort welches im Titel Bindestriche enthält, ohne diese suche, dann findet der nichts die Bohne

Beispiel in meinem Shop:

"Terra-C" kann ich so geschrieben ohne Probleme finden. Gebe ich aber "Terra c" in das Suchfeld (was die meisten meiner Kunden offenbar tun), dann findet die Suche nichts. Hättest Du da eine Idee was ich ändern müsste?

Re: Probleme mit Fuzzy Search

Verfasst: Di 20. Aug 2013, 13:46
von yogi
Hi,

wie hast Du denn die Suche im Backend konfiguriert?
Levinstein: ? %
Similar: ? %
Metaphone: ? %

Öffne mal die includes/classes/fuzzy_search.php und suche nach

Code: Alles auswählen

    $keyword_lev_sim = xtc_db_input($keywords);
und mache daraus mal

Code: Alles auswählen

    $keyword_lev_sim = strtolower(xtc_db_input($keywords));
Im weiteren Verlauf der Klasse werden die Namensteile ebenfalls auf Kleinbuchstaben runtergebrochen, dann sollte man das mit dem Vergleichswort ebenfalls machen.

similar_text("Terra C", "terra-c") ergibt 57.14, aber
similar_text("terra c", "terra-c") ergibt 85.71

Re: Probleme mit Fuzzy Search

Verfasst: Di 20. Aug 2013, 14:08
von Kopernikus
Hallo Jörg

Herzlichen Dank für den schnellen Lösungsansatz. Leider funktioniert es aber auch nach der von Dir empfohlenen Änderungen nachwievor nicht. Meine Einstellungen habe ich wie folgt erfasst:

Die Suche wird überall einbezogen (Attribute, Beschreibung etc.)
Fuzzy-Search: Übereinstimmung in % 70
Fuzzy-Search: LEVENSHTEIN-Faktor in % 40
Fuzzy-Search: SIMILAR-TEXT-Faktor in % 40
Fuzzy-Search: METAPHONE-Faktor in % 20
Produktenamen teilen: true
Trennzeichen zur Teilung: [ ,.]

Re: Probleme mit Fuzzy Search

Verfasst: Di 20. Aug 2013, 14:30
von yogi
setze mal testweise nur similar auf 100%, mit der "strtolower" methode sollte es dann funktionieren.

Aber es sollte eigentlich auch schon vorher geklappt haben, denn bei "Terra C" und "terra-c" ergibt sich folgendes:
Levenshtein: 70.00
Similar: 57.14
methaphone: 100.00

bei der Gewichtung von 40/40/20 sind das 70.86

Müßte ich mir am besten mal LIVE anschauen...

Re: Probleme mit Fuzzy Search

Verfasst: Di 20. Aug 2013, 15:07
von Kopernikus
Nö geht leider auch nicht. Ich meld mich dann mal bei Dir über Skype

Re: Probleme mit Fuzzy Search

Verfasst: Di 27. Aug 2013, 08:34
von yogi
So,

nach einigen Analysen wurde ein Fehler in der Suchlogik gefunden und im BT #500: Suche mit meheren Begriffen funktioniert nicht und behoben.