Zum Inhalt springen
Zurück zum Shopware Wiki
Technik

Elasticsearch in Shopware: schnelle Suche für große Shops

Elasticsearch macht die Shopware-Suche blitzschnell und treffsicher. Wann du es brauchst, wie du es einrichtest und welche Fallstricke dich erwarten.

6 Min. Lesezeit

Die eingebaute Datenbanksuche von Shopware reicht für kleine Kataloge völlig aus. Sobald aber Zehntausende von Produkten, komplexe Filterkombinationen und ein wachsendes Suchvolumen ins Spiel kommen, stößt MySQL an seine Grenzen. Genau hier kommt Elasticsearch ins Bild. Es ist kein nice-to-have für große Shops, sondern schlicht die technisch richtige Entscheidung, wenn dein Katalog über eine bestimmte Größe hinausgewachsen ist.

Was Elasticsearch ist und warum es besser skaliert

Elasticsearch ist eine auf Apache Lucene aufbauende verteilte Suchmaschine, die Daten als invertierte Indizes speichert. Das klingt technisch, hat aber einen simplen praktischen Effekt: Statt bei jeder Suchanfrage die gesamte Produkttabelle mit LIKE-Abfragen zu durchsuchen, fragt Shopware einen vorberechneten Index ab. Die Antwortzeit liegt dann typischerweise im zweistelligen Millisekundenbereich, egal ob du 10.000 oder 500.000 Produkte hast.

Neben der reinen Geschwindigkeit liefert Elasticsearch Relevanzscoring, Fuzzy-Matching (Tippfehlertoleranz), Stemming (Wortgruppen-Erkennung) und sprachspezifische Analyser aus dem Haus. All das fehlt einer SQL-basierten Volltextsuche oder ist mit erheblichem Entwicklungsaufwand verbunden.

Ab wann lohnt sich der Einsatz?

Eine pauschale Produktanzahl als Richtwert zu nennen wäre unseriös, denn es kommt auf die Datentiefe pro Produkt an. Als grobe Orientierung aus der Praxis: Ab etwa 5.000 aktiven Produkten oder vielen Filtereigenschaften treten die ersten spürbaren Engpässe bei der MySQL-Suche auf. Ab rund 20.000 Produkten oder mehr als 50 Filtereigenschaften ist Elasticsearch dann eine klare Empfehlung. Gleiches gilt für Shops mit hohem B2B-Anteil, wo Kunden oft sehr gezielt nach Artikelnummern oder technischen Spezifikationen suchen.

Wenn du merkst, dass deine Suchergebnisseite spürbar langsamer lädt als die Kategorieseiten, oder wenn die Datenbankauslastung bei Suchanfragen stark ansteigt, sind das klare Signale. Ein Blick in die Shopware Performance-Analyse hilft, das zu objektivieren.

Wie die Elasticsearch-Integration in Shopware 6 funktioniert

Shopware 6 liefert eine native Elasticsearch-Integration mit, die in den kommerziellen Editionen (ab Rise) offiziell unterstützt wird. In der Community Edition ist die technische Infrastruktur vorhanden, erfordert aber manuelle Konfiguration ohne offizielle Support-Absicherung.

Die Integration arbeitet mit zwei Mechanismen zusammen:

  • Indexierung: Shopware überträgt alle relevanten Produktdaten (Name, Beschreibung, Eigenschaften, Custom Fields, Kategorien) in einen Elasticsearch-Index. Dieser Prozess läuft initial als Massen-Indexierung und danach inkrementell über Message-Queue-Jobs.
  • Suche: Suchanfragen aus der Storefront werden nicht mehr gegen MySQL, sondern gegen den Elasticsearch-Index ausgeführt. Shopware mappt dabei seine interne DAL-Abfragstruktur auf die Elasticsearch Query DSL.

Seit Shopware 6.5 gibt es zudem die Möglichkeit, auch den Produkt-Listing-Filter über Elasticsearch zu beschleunigen, nicht nur die Freitextsuche. Das ist vor allem für Kategorieseiten mit vielen aktiven Filtern relevant, weil Aggregationen in Elasticsearch deutlich effizienter sind als GROUP BY-Queries in MySQL.

Einrichtung: was du brauchst und worauf du achten musst

Die technischen Voraussetzungen sind überschaubar: ein laufender Elasticsearch-Cluster (mindestens Version 7.x, empfohlen 8.x) oder eine kompatible Alternative wie OpenSearch, erreichbar über HTTP/HTTPS vom Shopware-Server aus.

In der config/packages/shopware.yaml oder über Umgebungsvariablen konfigurierst du die Verbindungsdaten:

elasticsearch:
  enabled: true
  hosts:
    - http://localhost:9200
  index_prefix: sw
  indexing_enabled: true

Anschließend läufst du den initialen Indexierungsbefehl durch die Konsole:

bin/console es:index

Klingt einfach. In der Praxis gibt es aber typische Stolperfallen, die du kennen solltest.

Heap-Speicher: Elasticsearch benötigt ausreichend Java-Heap. Zu wenig Speicher führt zu langsamen Indizes oder instabilen Cluster-Knoten. Als Faustregel gilt: mindestens 1 GB Heap, für Produktionsumgebungen mit großen Katalogen eher 4 bis 8 GB.

Index-Mapping-Konflikte: Wenn Custom Fields oder Eigenschaften in Shopware nachträglich geändert werden, kann es zu Mapping-Konflikten im bestehenden Index kommen. Du musst dann re-indexieren, was bei großen Katalogen je nach Server-Hardware einige Minuten bis zu einer Stunde dauern kann.

Message-Queue-Stabilität: Die inkrementelle Synchronisation hängt an der Shopware Message Queue. Wenn diese nicht zuverlässig läuft, veraltet dein Elasticsearch-Index. Das ist ein häufig unterschätztes Betriebsthema. Wer Shopware betreut, sollte die Queue-Tiefe und Fehlerrate im Monitoring haben.

Auch das Zusammenspiel mit dem HTTP-Cache und Redis sollte durchdacht sein: Ein schneller Elasticsearch-Index nützt wenig, wenn die Suchergebnisseite nicht gecacht wird und bei jedem Request neu aufgebaut wird.

OpenSearch als Alternative

Seit Elastic im Jahr 2021 die Lizenz von Elasticsearch auf eine nicht mehr vollständig Open-Source-kompatible Variante umgestellt hat, ist OpenSearch als Fork zu einer ernstgenommenen Alternative geworden. AWS betreibt und finanziert OpenSearch, es ist vollständig Open-Source-kompatibel und API-kompatibel mit Elasticsearch 7.x.

Shopware unterstützt OpenSearch offiziell seit Version 6.4.x. Wenn du auf Managed-Hosting-Lösungen wie AWS OpenSearch Service oder Managed OpenSearch bei europäischen Anbietern setzt, bist du mit OpenSearch oft günstiger und einfacher unterwegs als mit selbst verwaltetem Elasticsearch.

Performance-Tuning nach der Grundinstallation

Eine funktionierende Elasticsearch-Installation ist der erste Schritt. Wer das Potenzial wirklich ausschöpfen will, sollte folgende Punkte angehen:

  • Custom-Analyser konfigurieren: Der Standard-Analyser von Elasticsearch kennt keine deutschen Komposita. „Winterjacke” findet dann keine Produkte, die nur unter „Jacke” oder „Winter-Jacke” gelistet sind. Mit einem deutschen Analyser (z.B. german aus dem Lucene-Paket) lässt sich das korrigieren.
  • Boost-Felder definieren: Du kannst festlegen, dass ein Treffer im Produktnamen stärker gewichtet wird als ein Treffer in der Langbeschreibung. Das verbessert die Relevanzreihenfolge deutlich.
  • Synonyme hinterlegen: Händler mit eigenem Fachjargon profitieren stark von Synonym-Konfigurationen. Ein Kunde, der „Kabel” sucht, soll auch Ergebnisse für „Leitung” bekommen.

Diese Konfigurationen gehen über die Standard-Shopware-Oberfläche hinaus und erfordern direkten Eingriff in die Elasticsearch-Index-Mappings. Das ist keine tägliche Aufgabe, aber etwas, das bei der Ersteinrichtung nicht vergessen werden sollte, wenn die Suchqualität stimmen soll. Gut durchgeführte Shopware Performance-Optimierung schließt das immer ein.

Betrieb und Monitoring

Ein Elasticsearch-Cluster ist kein Set-and-forget-System. Folgende Betriebsaspekte sind im laufenden Shop relevant:

  • Shard-Gesundheit überwachen: Ein Cluster mit gelber oder roter Shard-Gesundheit indexiert langsam oder gar nicht mehr. Das fällt im Shop als verzögerte Suche auf.
  • Index-Größe im Blick behalten: Mit wachsendem Katalog wächst der Index. Bei Millionen von Dokumenten lohnt es sich, die Shard-Anzahl vorab richtig zu dimensionieren.
  • Re-Indexierung einplanen: Nach größeren Shopware-Updates oder signifikanten Katalogänderungen sollte eine vollständige Re-Indexierung als Wartungsfenster eingeplant werden.
  • Cluster-Logs auswerten: Elasticsearch loggt GC-Pausen, langsame Queries (Slow Log) und Knotenprobleme. Wer diese Logs nicht auswertet, merkt Probleme erst, wenn der Shop langsam wird.

Häufige Fragen

Kann ich Elasticsearch auch in der Shopware Community Edition nutzen?

Technisch ja. Shopware liefert die Basis-Integration auch in der CE mit. Offizielle Unterstützung und vollständige Kompatibilität, insbesondere für das Produkt-Listing-Filtering, sind aber kommerziellen Editionen vorbehalten. Für den produktiven Einsatz empfehlen wir mindestens Shopware Rise, schon allein wegen der Updategarantien.

Wie lange dauert die initiale Indexierung bei 100.000 Produkten?

Das hängt stark von der Server-Hardware, der Anzahl der Custom Fields und der Elasticsearch-Konfiguration ab. In der Praxis sehen wir bei 100.000 Produkten auf ordentlich dimensionierten Servern Laufzeiten zwischen 15 und 45 Minuten für den ersten vollständigen Index. Während der Indexierung bleibt die Suche über MySQL weiterhin funktionsfähig, solange du den Fallback nicht deaktiviert hast.

Was passiert, wenn Elasticsearch ausfällt?

Shopware fällt standardmäßig auf die MySQL-Datenbanksuche zurück, wenn Elasticsearch nicht erreichbar ist. Der Shop bleibt also funktionsfähig, aber die Suche wird deutlich langsamer. Je nach Katalogumfang kann das für Kunden spürbar sein. Ein Monitoring-Alert auf den Elasticsearch-Status ist deshalb Pflicht in jedem Produktionssystem.

Muss ich Elasticsearch selbst hosten oder gibt es Managed-Angebote?

Beides ist möglich. Selbst gehostetes Elasticsearch gibt dir maximale Kontrolle, erfordert aber Know-how bei Betrieb, Updates und Tuning. Managed-Angebote wie AWS OpenSearch Service, Elastic Cloud oder europäische Anbieter wie Bonsai oder Elastic.co Cloud nehmen dir den Betrieb ab. Für die meisten Shops im Mittelstand ist ein Managed-Angebot der pragmatischere Weg, sofern Datenschutzanforderungen (DSGVO, Serverstandort EU) erfüllt sind.


Wenn du unsicher bist, ob Elasticsearch für deinen Shop notwendig ist, oder wenn du eine bestehende Elasticsearch-Installation optimieren willst, schau dir unser Shopware-Betreuungsangebot an. Wir betreiben und optimieren Shopware-Shops mit Elasticsearch im laufenden Betrieb und wissen, welche Schrauben wirklich etwas bringen.

Shopware-Projekt oder Frage im Kopf?

Als Shopware Premium Extension Partner kennen wir die Plattform in der Tiefe. Lass uns ehrlich besprechen, was für dich sinnvoll ist.

BuI Insights

Shopware- & xentral-Praxiswissen direkt ins Postfach

Plugin-Updates, Best Practices, Migrations-Tipps und Branchen-Cases. Ein Mal im Monat, nur das, was wirklich relevant ist. Jederzeit abbestellbar.

Mit dem Klick stimmst du zu, dass wir dir den Newsletter zusenden dürfen (Art. 6 Abs. 1 lit. a DSGVO). Mehr in der Datenschutzerklärung.