Shopware

Warum die Shopware-Suche nicht findet, was im Text steht

Von 16 konfigurierbaren Suchfeldern sind ab Werk sechs aktiv. Die Beschreibung gehört nicht dazu. Das erklärt beide Beschwerden auf einmal — zu wenige Treffer und zu viele.

Pixup MediaVeröffentlicht am 8 Min. Lesezeit

„Die Suche findet das Produkt nicht." Der Satz beginnt viele Support-Anfragen, und die Ursache liegt fast immer an derselben Stelle: bei der Frage, welche Felder überhaupt durchsucht werden.

Dieser Text beschreibt die Werkseinstellung — ausgelesen aus zwei laufenden Installationen, nicht aus der Erinnerung.

Was ab Werk durchsucht wird

Shopware hält die Suchkonfiguration in zwei Tabellen: eine je Sprache, dazu die Felder mit Rang und Tokenisierung. Gemessen in 6.7.13.1:

Feldab WerkRangtokenisiert
productNumberan1000nein
customSearchKeywordsan800nein
namean700ja
eanan500nein
manufacturer.namean500nein
manufacturerNumberan500nein
parent.nameaus560
descriptionaus0
properties.nameaus0
tags.nameaus0
categories.nameaus0
metaTitle, metaDescriptionaus0
options.nameaus0
categories.customFields, manufacturer.customFieldsaus0

Sechs von sechzehn. Der Rang entscheidet, wie schwer ein Treffer in diesem Feld wiegt — eine getroffene Artikelnummer zählt mehr als ein getroffener Herstellername.

In 6.6.10.6 sind es 15 Felder statt 16; aktiv sind dieselben sechs, mit denselben Rängen. Zwischen den beiden Linien ändert sich an der Werkseinstellung also nichts.

Zwei Einstellungen, die den Rest erklären

min_search_length = 2. Suchbegriffe mit weniger als zwei Zeichen werden verworfen. Bei Katalogen mit einstelligen Größen- oder Typbezeichnungen ist das der Grund, warum eine Suche nach „S" nichts liefert.

and_logic = 0, also ODER. Bei mehreren Suchwörtern genügt eines für einen Treffer. Wer „rotes fahrrad" eingibt, bekommt alles Rote und alle Fahrräder.

Das ist die zweite Hälfte der Ausgangsbeschwerde: Die Suche findet zu wenig, weil die Beschreibung nicht durchsucht wird, und gleichzeitig zu viel, weil mehrere Begriffe nicht zusammen gelten müssen. Beides sind Einstellungen, keine Eigenschaften.

Warum nur name tokenisiert ist

Tokenisierung zerlegt einen Wert in einzelne Wörter. Beim Produktnamen ist das richtig — „Rennrad Carbon 54" soll auch bei der Suche nach „Carbon" treffen.

Bei productNumber, ean und manufacturerNumber wäre es falsch: Diese Werte sollen als Ganzes treffen. Wer nach ABC-123 sucht, will nicht alles, was irgendwo eine 123 trägt.

Die Werkseinstellung ist an dieser Stelle also keine Nachlässigkeit, sondern eine Entscheidung. Anders liegt es bei description: Dort wäre Tokenisierung sinnvoll — das Feld ist nur gar nicht erst aktiv.

Was wir in Projekten zuerst umstellen

In dieser Reihenfolge, weil sie vom größten zum kleinsten Hebel geht:

  1. description aktivieren, tokenisiert, mit niedrigem Rang. Das schließt die häufigste Lücke, ohne die Rangfolge durcheinanderzubringen.
  2. properties.name prüfen. In Katalogen, in denen Eigenschaften die eigentliche Produktsprache sind — Material, Farbe, Passform — gehört das Feld dazu.
  3. UND-Verknüpfung erwägen. Sie schärft die Treffermenge deutlich, kann aber bei Tippfehlern zu null Treffern führen. Vorher an echten Suchanfragen prüfen, nicht an Vermutungen.
  4. customSearchKeywords nutzen. Das Feld hat mit Rang 800 das zweithöchste Gewicht und ist dafür da, einzelne Produkte gezielt auffindbar zu machen — etwa unter einem Namen, den nur Kunden verwenden.

Punkt 4 wird in Projekten fast nie genutzt und ist der billigste Hebel von allen.

Was das nicht heißt

Die Shopware-Suche ist nicht schlecht. Sie ist konservativ eingestellt. Eine Werkseinstellung, die alle Felder durchsucht, würde in großen Katalogen eine Trefferliste erzeugen, die niemandem hilft — und die Indexgröße spürbar erhöhen.

Elasticsearch löst diese Klasse von Problem nicht. Es ändert, wie gesucht wird, nicht worin. Ein nicht aktiviertes Feld bleibt auch dort außen vor. Die Entscheidung für eine andere Suchtechnik gehört an das Ende dieser Liste, nicht an den Anfang.

Diese Messung sagt nichts über die Relevanzqualität. Geprüft wurde die Konfiguration, nicht, wie gut die Ergebnisse zu echten Suchanfragen passen. Das ist eine eigene Frage und braucht echte Suchdaten aus dem Shop.

Wie Sie den Stand in Ihrem Shop prüfen

In der Administration unter den Sucheinstellungen des Verkaufskanals steht die Feldliste mit Schalter und Rang. Was dort nicht aktiv ist, wird nicht durchsucht — unabhängig davon, wie gut es gepflegt ist.

Wenn Sie bei der Einordnung Unterstützung brauchen, gehört das zu Shopware-Support.

Häufige Fragen

Warum findet die Suche mein Produkt nicht, obwohl der Begriff in der Beschreibung steht?
Weil das Feld description ab Werk nicht durchsucht wird. Es steht in der Konfiguration, ist aber nicht aktiviert. Das lässt sich in den Sucheinstellungen des Verkaufskanals ändern.
Warum bekomme ich bei zwei Suchwörtern zu viele Treffer?
Weil Shopware die Begriffe standardmäßig mit ODER verknüpft. Ein Produkt, das nur eines der beiden Wörter enthält, ist damit ein Treffer. Die Einstellung lässt sich auf UND umstellen.
Brauche ich Elasticsearch, damit die Suche besser wird?
Nicht als erstes. Elasticsearch ändert die Suchtechnik, nicht die Feldauswahl. Wenn ein Feld nicht als durchsuchbar markiert ist, findet auch Elasticsearch nichts darin.
Was bedeutet „tokenisiert“?
Der Wert wird in einzelne Wörter zerlegt, die jeweils für sich gefunden werden können. Ab Werk gilt das nur für den Produktnamen. Bei einer Artikelnummer ist das auch richtig so — sie soll als Ganzes treffen.
WeiterführendShopware-Support