Gute Suche oder wie man es besser nicht macht
Vor nicht all zu langer Zeit wurde eine Idee an mich heran getragen, wie man eine gute, fehlertolerante Suche für Online-Shops programmieren könnte. Im Kern war die Idee recht einfach: Man notiere einfach an jedem Artikel sämtliche potenziellen Schreibweisen und Synonyme und mache sie durchsuchbar. Die entsprechende Datenbank könne man ja schrittweise aufbauen.
In der Theorie funktioniert das sicherlich recht gut. Allerdings gibt es zwei Haken:
- Ein Wort kann schon ziemlich viele Schreibweisen haben, zählt man alle kleinen Vertipper mit hinzu.
- Bei 10 Produkten mag man das ja noch hinbekommen. Bei mehreren 1000 Produkten wohl eher nicht.
Es gibt halt nicht umsonst moderne Produktsuchmaschinen, die mit Hilfe von Suchalgorithmen Ähnlichkeiten erkennen können.
Ich denke nicht, dass es an der Fehlertoleranz hapert. Die lässt sich über verschiedene Algorithmen integrieren. Die meisten Shops / Shop-Systeme machen den Fehler, dass sie unstrukturiert vorgehen. Eine Google-Suche für Shops macht eben keinen Sinn.
Man sollte nach Kategorien vorgehen, dann die möglichen Produkte filtern anhand von Tags, diese wiederrum nach Relevanz sortieren. Danach sollte man die Häufigkeit bestimmter Suchbegriffe und die daraufhin ausgewählten Produkte auswerten. Gerade bei großen Shop-System führt das zu einer Art Selbstlernmechanismus.
Zwischendrin kann immer wieder die Fehlertoleranz des eingebenen Begriffes anhand von Wahrscheinlichkeiten errechnet werden.
Im Allgemeinen gilt: “Content ist King.” Auch wenn man nicht alle möglichen Falsch-Schreibungen einpflegen kann, kann man dennoch eine vielzahl von Tags einpflegen und deren Bezug zum Produkt definieren (Alternativer Name, Inhaltsstoff, etc.).
Das würde viele Suchen schon ein riesiges Stück weiterbringen.
Dem kann ich nur zustimmen. Gute Suchen bilden natürlich die Fehlertoleranz über diverse Algorithmen ab. Und auch die angesprochenen Selbstlernmechanismen sind in verschiedenen Produkten implementiert.
Was natürlich bleibt, ist das Befüllen des Indexes mit den richtigen Inhalten und eine Konfiguration der Gewichtung der Inhalte untereinander.
Das von mir genannte Beispiel war nur ein Vorschlag einer externen Person, der an mich herantgetragen wurde und den wir dann nicht weiterverfolgt haben.