Kostenlose und kostenpflichtige Shop-Software für verschiedene Anwendungsszenarien ist im Internet zahlreich vorhanden. Die etablierten Anbieter haben eine Vielzahl von Lösungen für Standardprobleme im Gepäck. Viele Interessenten die ihren Bedarf für außergewöhnlich halten, waren schon überrascht, wenn wir ihnen erklären konnten, dass ihre Bedürfnisse zu großen Teilen bereits von der Shop-Software abgedeckt waren.
Umgekehrt gibt es aber auch den Fall, dass die Anbieter Lösungen im Gepäck haben, die im Einzelfall effizienter durch eine spezielle Software erledigt werden kann. Ein häufiges Beispiel ist die Shopsuche, die im Standardfall mit der Shopdatenbank betrieben wird.
Unsere Kunden stellen dann (zu Recht) oft dieselben Fragen, wenn wir empfehlen, die Suche durch eine Lösung auf Basis von Apache SOLR zu ersetzen:
„Warum brauchen wir noch eine Software“
Eine relationale Datenbank wie Mysql ist zwar in der Lage, eine Suche durchzuführen, aber diese Aufgabe ist nicht ihre eigentliche Stärke. Datenbanken sind auf Schreiben und auf Lesen gleichermaßen optimiert, daher muss im Hinblick auf Performance ein Kompromiss getroffen werden. Das Finden von Datensätzen funktioniert über Indexe, die auf Spalten agieren. Volltextsuche ist hier ein Sonderfall.
Eine Datenbank kann die Aufgabe zwar lösen, aber mit einem Werkzeug das auf den konkreten Zweck optimiert ist, sind bessere Ergebnisse möglich. Mit einer separaten Software wie SOLR können Features realisiert werden, die mit einer Datenbank nur mit erheblichem Aufwand, Performanceeinbußen oder deutlich erhöhtem Hardwareaufwand machbar sind.
„Der Shop hat aber doch schon eine Suche, warum brauchen wir jetzt was anderes?“
Die Standardsuche eines Shops zielt auf bestimmte Textfelder, wobei eine Volltextsuche relativ teuer ist. Ausserdem ist in einer Standardsuche nicht jeder Wunsch erfüllbar. Werbepriorität, versteckte Felder die nur die Suche beeinflussen oder Gewichtung verschiedener Felder sind nur einige Beispiele hierfür.
Lucene, die Engine hinter SOLR ist von vornherein auf Volltextsuche optimiert, beim Befüllen mit Daten wird bereits darauf geachtet daß die zu findenden Objekte (zum Beispiel Produkte in einem Shop) mit allen nötigen Attributen so verknüpft sind daß die Suchanfragen möglichst einfach und effizient durchführbar sind. Teilweise ist das mit Views in Datenbanken vergleichbar, technologisch geht das allerdings noch etwas weiter.
„Das ist doch nur ein Suchfeld, warum ist das so teuer“
Spezialisierung, Komfort und Performance sind die Stichwörter. Wer etwas von der Stange kauft, muss hinnehmen dass es nicht hundertprozentig auf die eigene Figur geschnitten ist. Geht man zur Maßanfertigung über, muss mehr Arbeit hineingesteckt werden.
Google hat zwar eine grosse weisse Seite mit einem Texteingabefeld und einem Abschicken-Button, allerdings steckt dahinter jahrelange Arbeit um qualitativ gute Suchergebnisse zu präsentieren. Das gleiche Ziel hat eine gute Shopsuche. Der Nutzer soll das finden, was er haben möchte. Dazu gilt es einerseits, sich Gedanken zu machen wie der eigene Kundenstamm tickt, andererseits muss die Umsetzung mit entsprechendem Aufwand betrieben werden, damit alles reibungslos und flüssig funktioniert.
Im Vergleich mit fertig angebotenen Lösungen entstehen die Kosten hier bei der Integration und nicht durch Lizenzkosten im laufenden Betrieb.
„Ich wollte einen Artikelfilter, warum ist mein Shop plötzlich so langsam?“
Da Relationen in Datenbanken (Beispielsweise Attribute von Produkten) normalerweise über separate Tabellen abgebildet werden, müssen hier für Anfragen mehrere Tabellen verknüpft werden. Wird die gesuchte Kombination komplizierter, steigt die Anzahl dieser Tabellen und damit der Suchaufwand spürbar.
Eine Filterung vervielfacht diesen Effekt zusätzlich, da neben dem Suchvorgang über die verknüpften Attribute auch noch eine Shopseite mit Artikeln aufgebaut werden muss, die speziell für diesen einen Nutzer zusammengestellt wird.
„Es gibt doch da Firma X die hat eine SOA-Lösung / Ein Modul für meinen Shop, warum nehmen wir nicht die?“
Hier wären wir wieder bei Stangenware. Es ist zwar grundsätzlich möglich, Systeme zu bauen die eine große Bandbreite von Bedürfnissen bedienen, aber das geht natürlich auch immer zu Lasten der Flexibilität für die einzelne Anwendung. Bei Modulen kommt zusätzlich noch hinzu, dass diese ja wieder über die Datenbank agieren müssen, und damit den oben beschriebenen Einschränkungen unterliegen.
Hat man eine eigene Lösung, so kann deren Nutzung für den Shop noch erheblich ausgeweitet werden. Unsere Kunden nutzten unter anderem bisher:
- Autosuggest bzw. Treffervorschau
- Sobald genügend Zeichen eingegeben wurden, erscheint unter dem Suchfeld eine Dropdown-Liste von Treffervorschlägen. Diese Liste kann mit ein wenig Tuning auch mehrere Bereiche (Produkte, Kategorien, Dokumente) enthalten. Auch bisherige Sucheingaben könnten auf diese Weise vorgeschlagen werden.
-
Autocomplete
- Die Sucheingaben oder eine Liste von populären (oder vom Shopbetreiber gewünschten) Suchbegriffen kann auch direkt im Suchfeld zur Wortvervollständigung angeboten werden
- Spezielle Suchfelder
- Eine auf Artikelnummern spezialisierte Möglichkeit, im Warenkorb Produkte hinzuzufügen ist im B2B-Bereich eine gute Wahl um Händlern die Arbeit zu erleichtern und damit das Shopping-Erlebnis angenehmer zu gestalten.
- Live-Facettierung
- Mit einer Datenbank anzuzeigen, wieviele Artikel jeweils unterhalb einer Kategorie hängen, ist so rechenintensiv, dass üblicherweise die Ergebnisse im voraus berechnet werden. Mit SOLR ist dies zur Laufzeit berechenbar. Daher kann dieses Feature auch mit einer Shop-weiten Filterung kombinierbar, so dass der Nutzer immer findet, was zu seiner Auswahl passt.
- Live-Tagclouds
- Auch Tagclouds lassen sich mit SOLR leicht zur Laufzeit ermitteln. Mit SOLR könnte man dem Nutzer so erlauben, ein Tag auszuwählen und ihm für die verbleibenden Produkte eine neue Cloud mit verwendeten Tags anzeigen.
Fazit
Die Ergänzung einer Shop-Software durch eine maßgeschneiderte Suchlösung ist eine sinnvolle Investition für die meisten Shops mit hinreichend vielen Artikeln. Je nach Gesamtbudget und Komfortwünschen kann der Integrationsgrad frei gewählt werden.
Anders als bei fertigen Lösungen, egal ob SOA oder vorgefertigten (verschlüsselten) Shopmodulen kann die Integration hier jederzeit einfach schrittweise geändert oder ergänzt werden.
Schreibe einen Kommentar