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.
„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:
| Feld | ab Werk | Rang | tokenisiert |
|---|---|---|---|
productNumber | an | 1000 | nein |
customSearchKeywords | an | 800 | nein |
name | an | 700 | ja |
ean | an | 500 | nein |
manufacturer.name | an | 500 | nein |
manufacturerNumber | an | 500 | nein |
parent.name | aus | 560 | — |
description | aus | 0 | — |
properties.name | aus | 0 | — |
tags.name | aus | 0 | — |
categories.name | aus | 0 | — |
metaTitle, metaDescription | aus | 0 | — |
options.name | aus | 0 | — |
categories.customFields, manufacturer.customFields | aus | 0 | — |
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:
descriptionaktivieren, tokenisiert, mit niedrigem Rang. Das schließt die häufigste Lücke, ohne die Rangfolge durcheinanderzubringen.properties.nameprüfen. In Katalogen, in denen Eigenschaften die eigentliche Produktsprache sind — Material, Farbe, Passform — gehört das Feld dazu.- 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.
customSearchKeywordsnutzen. 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.
