Intelligente Suche in Shopware  konfigurieren und erweitern

So macht man’s richtig!

Der Leitfaden zur Konfiguration und Erweiterung der Intelligenten Suche von Shopware

Die Intelligente Suche von Shopware fühlt sich out-of-the-box nicht immer “intelligent” an. Wir beschreiben unsere Erfahrungen mit dem Plugin und wie man durch geschickte Konfiguration und einem kleinen Plugin  auf die gewünschten Suchergebnisse kommt!

Eine gute Suche im Onlineshop erhöht die Conversion Rate, weil potentielle Kunden einfacher ein gewünschtes Produkt finden und bestellen können. Findet die Suche aber extrem falsche Begriffe oder liefert zu einem Suchbegriff gar keine Ergebnisse, führt das zu Frustration und einem Verlassen der Seite. Die Suche von Shopware gibt auch in der Vorschlagssuche nicht im Standard die Kategorien oder Hersteller aus.

 
Die Shopware-Dokumentation findet man hier für die intelligente Suche. Für die normale Suche hier.

Alternativen zur “Intelligenten Suche” von Shopware

Grundsätzlich vermeiden wir, den Core von Shopware zu “verbiegen” und setzen aus Gründen der Performance so wenig wie möglich Plugins ein. Weiterhin möchten Shopanbieter ungern zwischen verschiedenen Systemen hin und her springen und Schnittstellen bringen immer wieder besonders bei Updates Probleme mit sich. Insofern ist es natürlich schön, wenn ein Shopsystem wie Shopware bereits von Haus aus eine fehlertolerante Lösung anbietet. Die Standard Suche von Shopware lässt sich mit dem kostenpflichtigen Plugin “Intelligente Suche” der Shopware AG kostengünstig erweitern. 

Aber auch Drittanbieter wie Findologic, FactFinder und Doofinder bieten Plugins mit Schnittstellen zu deren Drittanbieterlösungen. Diese können viel und teilweise mehr. Bedenken sollte man beim Einsatz dieser Drittanbieter-Lösungen folgende Punkte:

  • > Steht die Kosten/Nutzen-Relation im richtigen Verhältnis? (Doofinder ist recht günstig)

> Wie hoch ist der administrative Aufwand, werden Daten sauber abgeglichen (Echtzeit)?
> Werden Subshops umfassend berücksichtigt?
> Werden Sprachshops entsprechend berücksichtigt?
> Werden die Preise der Kundengruppen in der Suche beachtet?
> Werden die steuerlichen Informationen korrekt abgebildet (Bruttopreise, Nettopreise für B2B, Drittland)?
> Wie sieht die Ergebnislistendarstellung aus, wenn der Nutzer auf “Enter” in der Sucheingabemaske drückt?
> Werden die Währungen korrekt dargestellt?
> Inwieweit möchte man die Suchergebnisse von Google indexieren lassen?
> Performance: Wie schnell reagiert die Vorschlagssuche?
> Konfigurierbarkeit: Inwieweit lässt sich die Drittanbieter-Suche konfigurieren und designen und welche Kosten entstehen dafür?
> Welche Auswertungen kann man nutzen, sind diese valide?
> Werden die Suchdaten an Trackingsysteme wie Google Analytics übergeben?

> Kann man das alles für sich (positiv) beantworten, kann man auch ein Drittsystem mit Mehrkosten und eventuell mehr Performance und Möglichkeiten einsetzen.

Ebenso sollte man die in Shopware Enterprise eingesetzte, wirklich flotte Anbindung an Elastic Search ins Auge fassen. Hier ist jedoch eventuell ein Umstieg zu Shopware Enterprise mit entsprechenden einmaligen und monatlichen Kosten notwendig.


Was ist der Unterschied zwischen der Intelligenten Suche und der normalen Suche von Shopware und warum sollte man diese erweitern?

Das Plugin Intelligente Suche der Shopware AG macht die Suche eines Shopware Systems “fuzzy” (dt. “unscharf”), was bedeutet, dass auch falsch geschriebene Namen oder auch nur teilweise ausgeschriebene Begriffe gefunden werden. 

Leider konnten wir auf unseren Test-Systemen mit den Grundeinstellungen der Intelligenten Suche keine guten Suchergebnisse erzielen, was zu Frustration bei Kunden und Benutzern geführt hat. Nach langer Justage und mehrmaligem Lesen der sporadischen Dokumentation meinen wir einen guten Überblick über die Einstellungsmöglichkeiten zu haben, sodass wir nun zufriedenstellende Ergebnisse erhalten.

 
Im Nachfolgenden erklären wir den von uns durchlaufenen Prozess zur Einstellung des Plugins und wie wir die  gewünschten Suchergebnisse erhalten haben.


Warum das Plugin der cusati media GmbH nutzen und nicht andere Plugins aus dem Shopware-Store?

Im Shopware-Store sind wir nicht so recht fündig geworden. Die “Erweiterte Suche im Blog, CMS, Herstellern und Kategorien” von Netzperfekt unterstützt die Intelligente Suche nicht bzw. nur beschränkt, ergo auch nicht die Fuzzy-Suche.

Daher entschieden wir uns für eine Eigenentwicklung. Ihr könnt sie hier im Shopware-Store ansehen.


Grundeinstellungen der Intelligenten Suche

 

Die Grundeinstellungen sind das Herz des Plugins. Hier wählt man zuerst, welche Suchalgorithmen zur Suche verwendet werden sollen und welche Parameter diese verwenden.


Suchalgorithmen von Shopware

Die Suchalgorithmen werden im Plugin in zwei Teile unterteilt, die Keyword-Suche und die genauen Treffer.

 

Die Keyword Suche

Der Keyword-Suche Algorithmus stellt fest, ob ein bestimmtes Wort im System dem eingegebenen Suchbegriff ähnelt. Genaue Treffer stellt anschließend fest, wie sehr sich die Wörter ähneln oder ob das exakte Wort gefunden wurde. Diese Art des Suchens nennt sich auch unscharfe Suche (englisch fuzzy search). Damit diese aber gute Ergebnisse liefert, muss sie ordentlich konfiguriert sein.

Bei der Keyword-Suche kann man zwischen drei Optionen wählen: 

> Soundex, 
> Kölner Phonetik 
> und Metaphone. 

Bei diesen Algorithmen handelt es sich um sogenannte phonetische Algorithmen. Diese Algorithmen können Worte mit ähnlichem Klang zuordnen. Ursprünglich wurde diese Technologie erstmals bei einer Volkszählung in den USA verwendet, um gleich klingende Nachnamen wie “Meyer”, “Mayer” und andere Schreibweisen nicht getrennt voneinander ins System aufnehmen zu müssen. Heutzutage dienen diese Algorithmen zur Bestimmung von ähnlich klingenden Wörtern bei Suchanfragen. Die damals verwendete Technik nennt sich Soundex und kann auch in der Intelligenten Suche als phonetischer Algorithmus verwendet werden. Da dieser jedoch, wie eben erwähnt, für die englische Sprache optimiert ist, führt er vor allem in deutschsprachigen Shops zu ungenauen Suchergebnissen. 
Eine genauere Variation dieses Algorithmus, aber ebenfalls optimiert für die englische Sprache, ist der Metaphone Algorithmus. Dieser arbeitet in Testsystemen etwas langsamer, aber dafür genauer.
Speziell für deutsche Systeme wurde die Kölner Phonetik entwickelt. Sie arbeitet ebenfalls langsamer als der Soundex, liefert aber für deutsche Shops mit Abstand die besten Ergebnisse.

Was die Dokumentation von Shopware allerdings nicht verrät: Nur der Kölner Phonetik Algorithmus ermöglicht die Suche nach besonderen Buchstaben wie “á” oder “é”.

 
Wenn man beispielsweise einen Weinhandel betreiben und nach “Roséwein” suchen will, werden die anderen beiden Suchalgorithmen schlechtere oder gar keine Ergebnisse zeigen. Diese Funktionalität wird in den Reviews des Plugins sehr häufig kritisiert und beruht auf einem Einstellungsfehler, der von Seiten Shopwares sehr schlecht kommuniziert wird.

 
Leider ist die Kölner Phonetik spürbar langsamer als der Soundex. Diesen sollte man Verwenden, wenn man keine besonderen Buchstaben in Artikeln und Beschreibungen verwenden oder Performanz vor genauen Suchergebnissen stellen möchte.

Genaue Treffer

Beim Genauen Treffer Algorithmus konnten wir bei ausgiebigen Tests keine spürbaren Unterschiede feststellen. Wir verwenden in unseren Systemen immer Levenstein und erhalten damit zufriedenstellende Ergebnisse.


Weitere Einstellungen der Suche und zusätzliche Relevanz

Bei den weiteren Einstellungen würden wir auf die offizielle Dokumentation der Intelligenten Suche verweisen. Diese schlüsselt alle Berechnungen der Werte auf und erklärt kurz, wie Werte miteinander addiert oder multipliziert werden.

 

 

Die wichtigsten Einstellungen waren für uns die Maximal-Distanz für unscharfe Suche in Prozent und Maximal-Distanz für Teilnahme in Prozent. Wenn diese beiden Parameter zu niedrig eingestellt waren, erhielten wir zu viele Ergebnisse, die fälschlicherweise sehr hoch gerankt wurden. Der Grund dafür war, dass die Artikelbeschreibungen oder auch Eigenschaften zu viele im weitesten Sinne ähnliche Wörter enthielten und dadurch ein höheres Ranking erzielten, als Artikel mit demselben Namen wie der Suchbegriff. 

Bei diesen Parameter gilt aber: Jedes System und jedes Sortiment ist anders und muss getestet werden, um die besten Parameter feststellen zu können. Für uns lieferten Werte zwischen 50 und 70 die besten Ergebnisse. Viele Betreiber pflegen zum Beispiel die Eigenschaften nicht konsequent oder einem unzureichenden Konzept. Da besteht oft Nachholbedarf!

Generell können wir aber sagen: Je mehr Artikel man in einem Shop führt und je mehr Eigenschaften diese Artikel aufweisen, desto höher sollten die Parameter für Maximal-Distanz für unscharfe Suche in Prozent und Maximal-Distanz für Teilnahme in Prozent sein.

 

Tabellen richtig konfigurieren

Bevor man sich der Konfiguration der Tabellen widmet, kann man überprüfen, welche Suchbegriffe am häufigsten gesucht werden und welche Suchanfragen noch ohne Ergebnis blieben.

Dafür gibt es zum einen im Menüpunkt Marketing -> Statistiken -> Beliebte Suchbegriffe die Möglichkeit, die am Meisten gesuchten Begriffe einzusehen. Beim Testen ist es wichtig, diese Begriffe zu beachten und deren Ergebnisse so weit es geht zu optimieren.

Ebenfalls in Marketing -> Statistiken gibt es Suchbegriffe ohne Ergebnisse. Oft finden sich hier sehr kurze Wortschnipsel, die für das System eher uninteressant sind. Sollten sich hier Begriffe finden, die man für sehr wichtig erachtet, sollte auf diese natürlich ganz besonders ein Auge geworfen werden. 

 
Gut zu wissen: Bereits beim Eingeben wird eine Suche ausgelöst und dabei der Suchbegriff in der Datenbank zum auswerten eingetragen!

 
Jetzt wollen wir die Tabellenkonfiguration anhand eines Beispiels erkunden. Hierfür möchten wir die Suche um die Eigenschaften eines Artikels erweitern. Im Demoshop soll nach dem Suchbegriff “fruchtig” als Ergebnis der Münsterländer Aperitif auftauchen, welcher die Eigenschaft “fruchtig” enthält.

Bisher erhalten wir nur ein Ergebnis, dass “fresh” enthält und dadurch für die unscharfe Suche Ähnlichkeit mit “fruchtig” hat.

 

Tabelle mit Fremdschlüssel hinzufügen

Im Reiter Tabellenkonfiguration stehen alle Tabellen, aus denen potentiell Suchbegriffe genommen werden können. An erster Stelle ist hier die Tabelle s_articles zu finden. Diese Tabelle bitte nie löschen, da alle Suchergebnisse auf die hier vorzufindende ID zurückgeführt werden und dadurch z.B. im Suchfenster der Shopseite Name und Bild angezeigt werden.

 
Alle weiteren Tabellen müssen immer irgendwie auf die articleID zugreifen können. Im Falle der Tabelle s_articles_supplier geschieht das über einen Fremdschlüssel. Der Eintrag in der Tabellenkonfiguration bedeutet damit so viel wie “suche in der Tabelle s_articles_supplier und benutze supplierID als Referenz zur articleID”. Diese Referenz ist dabei in der Ausgangstabelle s_articles enthalten.

 

 

Genau nach diesem Schema können wir auch die Tabelle hinzufügen, die die Eigenschaften der Artikel speichert, nämlich s_filter_values. Nach einem kurzen Blick in die Datenbank stellen wir aber fest, dass hier die Namen der Eigenschaften gespeichert werden, allerdings kein Bezug zu einer articleID besteht. Diesen Bezug von Eigenschaft zu Artikel entnehmen wir der Tabelle s_filter_articles. Hier finden wir nur alle articleIDs und die zugewiesene Eigenschaft in Form von valueID

Um die Tabelle nun in der Tabellenkonfiguration hinzuzufügen, müssen wir nur noch alles zusammenpuzzeln: 
> Die auszuwählende Tabelle heißt s_filter_values,
> Die Referenz(-tabelle) zur articleID finden wir in s_filter_articles,
> Und verwende den Schlüssel valueID (aus s_filter_articles), um die Eigenschaft (also das Feld id in s_filter_values) eindeutig zu einem Artikel zuordnen zu können.

 
Das 4. Feld in diesem Kontextmenü, “Zusätzliche Bedingung definieren”, sollte sich eigentlich wie ein zusätzlicher “where” Teil einer SQL-Anfrage verhalten. Nach einigem Herumprobieren haben wir allerdings keine besonders nützliche Anwendung dafür gefunden.


Ausgabe der Varianten in den Suchergebnissen bei Shopware

Leider kann man auf diese Art nicht nach Varianten / Konfiguratorartikeln suchen. Das Problem dabei ist, dass in deren Tabellen die Artikel als article_id und nicht als articleID angegeben sind. Nach vielen Versuchen haben wir keine Möglichkeit gefunden, diese Fehlbenennung ohne direkten Eingriff in das Plugin zu umgehen. Wir empfehlen stattdessen, die Artikeleigenschaften zusammen mit den Varianten zu pflegen und diese – wie eben gezeigt – der Suche hinzuzufügen.

Tabellenfelder und deren Relevanz festlegen

Wenn die notwendigen Tabellen hinzugefügt wurden, muss der Suche anschließend noch gesagt werden, in welchen Tabellenfeldern sie Begriffe suchen soll. Unter Relevanz/Felder können wir diese Felder hinzufügen und verwalten.

Dieser Prozess ist bei richtig konfigurierten Tabellen ziemlich unkompliziert. 

Beim Erstellen eines neuen Eintrags muss man lediglich einen Namen festlegen und eine Relevanz zuteilen (dazu im Anschluss mehr). Die Tabelle und der Tabellenwert stammen dabei aus den hinzugefügten Tabellen. Taucht eine Tabelle hier nicht auf, muss  eventuell der Cache geleert oder das Backend neu geladen werden. Ist sie immer noch nicht vorhanden, wurde evtl. ein falscher Name eingetragen oder falsch konfiguriert.

Als letzte Option wird noch nicht splitten zur Verfügung gestellt. Diese Option ist beispielsweise sinnvoll, wenn man es dem Kunden nur erlauben will, nach gesamten Artikelnummern zu suchen. Sollte in einer Artikelnummer aus irgendeinem Grund “apfel” vorkommen, obwohl er damit überhaupt nichts mit dem Begriff zu tun hat, so würde bei einer Suche der Artikel fälschlicherweise mit ausgegeben werden.

Für unser Beispiel wollen wir ein Feld Filter-Eigenschaften hinzufügen, dem wir den Relevanzwert 60 zuteilen. Das zu durchsuchende Feld wird dabei value aus der soeben konfigurierten Tabelle s_filter_values sein. Nicht splitten ergibt in unserem Beispiel wenig Sinn, also lassen wir hier die Box nicht ausgewählt.

Nach dem Hinzufügen eines Feldes muss der Cache wieder geleert und anschließend der Suchindex neu aufgebaut werden. Unter Einstellungen -> Caches/Performance -> Einstellungen -> Suche kann dieser Prozess initialisiert werden..


 

In einem unserer großen Systeme wurden die Eigenschaften der Artikel sehr gut gepflegt, allerdings war es auch eine solche Vielzahl, dass die Suche viele irrelevante Artikel höher angezeigt hat, als die Artikel, die wir mit dem Suchbegriff eigentlich ausgeben wollten. Eine Änderung des Felds auf “nicht splitten” half hier dem Ranking immens.

Relevanzwerte

Das Einstellen der Relevanzwerte ist eine Wissenschaft für sich und kann nur mit ausgiebigem Testen perfektioniert werden. An dieser Stelle verweisen wir auf die Shopware eigene Dokumentation der Intelligenten Suche, wo alle Berechnungen nochmals kurz erklärt werden. Dennoch können wir hier einige Werte angeben, an denen man sich beim einrichten eines Systems orientieren kann.

Relevanzwerte können am besten im Tab Vorschau geprüft werden, da dort die einzelnen Werte aufgeschlüsselt werden, bevor sie addiert und gerankt werden. Nach dem ändern der Relevanzen muss immer den Shop-Cache erneut geleert werden.

 
In unseren Systemen war es uns am wichtigsten, dass Ergebnisse für Artikelnamen und Hersteller in der Suchleiste als höchstes gerankt werden. Dafür haben wir Hersteller als Basiswert 100 zugeteilt und Artikelnamen eine etwas wichtigere 125. Tests mit vier oder fünfstelligen Zahlen ergaben meist bei der Berechnung so hohe Werte, dass man nicht mehr richtig nachvollziehen konnte warum ein bestimmter Begriff nun so hoch bzw. niedrig granked wurde.

Für Filtereigenschaften und Kategorien ergab ein Wert von jeweils 50 ein gutes Ergebnis. Die Bestellnummer und die EAN mussten wir nur mit 5 bepunkten, weil diese jeweils eindeutig und eher kryptisch sind und es daher keine Konflikte mit anderen Begriffe wie Artikelnamen geben sollte.

 
Diese Felder reichen in unseren Systemen schon aus, um gute Suchergebnisse zu liefern, während die Suche selbst bei größeren Shops noch relativ performant läuft.

Testen und iterieren

 
Suchergebnisse sind nicht immer von Anfang an perfekt und auch wir benötigen für Seiten mehrere Anläufe, um Suchergebnisse auf Kunden zuzuschneiden. Am Besten versetzt man sich in die Lage des Kunden und gebt Suchergebnisse mit Schreibfehlern ein, um zu testen wie Robust das aktuelles Ergebnis ist (z.B. soll “Rose” auch Ergebnisse für “Roséwein” liefern). Wie vorhin schon erwähnt kann für diesen Prozess auch beliebte Suchbegriffe oder auch Suchbegriffe ohne Ergebnisse verwenden werden.

 
Nach allen Einstellungen und Tests können wir nun nach fruchtig im Shop suchen und finden den Artikel als ersten im Suchbegriff Ranking.

 

 

Profile anlegen

Wenn wir nach ein paar Test mit unseren Ergebnissen zufrieden sind, ist es sehr sinnvoll sich die aktuellen Einstellungen in einem Profil zu speichern. Wenn man zu einem späteren Zeitpunkt nochmal die Werte verändert, kommt es gerne mal vor, dass die Suchergebnisse sehr schlecht werden, oder auf einmal gar nichts mehr angezeigt wird. 

Deshalb wechseln wir in den Tab Profile und speichern den aktuellen Zustand lieber ab, bevor wir uns selbst ein Bein stellen.

So kann man jederzeit zu einem alten Standpunkt zurückwechseln, zu dem alles noch funktioniert hat.


Synonymgruppen verwenden

Synonymgruppen klingt im ersten Moment wie eine Einstellungsmöglichkeit um z.B. “Rosé” mit “Roséwein” gleichsetzen zu können. Das ist hier allerdings nicht der Fall. Unter Synonymgruppen versteht Shopware eine Reihe an Wörtern, bei deren Eingabe ein bestimmter Banner oder ein Schriftzug angezeigt werden kann.

Hierzu verweisen wir erneut auf die Dokumentation des Plugins, die die Einstellung anschaulich mit Bildern erklärt.

Wir verwenden Synonymgruppen, um bei der Eingabe von Kategorienamen (z.B. “Weißwein”) direkt auf die Seite der Kategorie zu gelangen, anstatt nur Artikel in dieser Kategorie zu finden.

Eine elegantere Lösung dafür ist unser hauseigenes Plugin Erweiterung für die Intelligente Suche, die im Shopware Store angeboten wird. Diese fügt neben dem Suchfenster zusätzlich eine Spalte für gefundene Hersteller und Kategorien hinzu.

Hilfreich ist der Einsatz von Synonymgruppen, um zum Beispiel wichtige Contentseiten wie Impressum oder Versandkosten ausgeben zu lassen.

Fazit

Die Intelligente Suche von Shopware ist eine relativ elegante und vor allem preiswerte Möglichkeit, Shops um eine unscharfe Suche für bessere Ergebnisse zu ergänzen. 

Die schlechten Bewertungen im Shopware Store kommen dabei wahrscheinlich von schlecht konfigurierten Anwendungsfällen oder Performance Problemen bei sehr großen Shops. Wir hoffen wir konnten dem eventuellen Frust beim Einstellen dieses Plugin entgegenwirken und Lücken in der Dokumentation ergänzen.

Unser Plugin werden wir noch um weitere Funktionen ergänzen.

Bei Fragen und Wünschen sind wir gern behilflich und man kann uns zu allen Shopware-Belangen jederzeit kontaktieren.

 
Die Shopware-Entwickler der cusati media GmbH

Show CommentsClose Comments

Leave a comment