Warum OpenSearch: Lizenz, Trägerschaft, Systemanforderungen
OpenSearch ist ein eigenständiger Suchdienst, entstanden als Community-Fork von Elasticsearch, nachdem Elastic 2021 die Lizenz von Apache 2.0 auf eigene Lizenzmodelle umgestellt hatte. OpenSearch steht vollständig unter der Apache-2.0-Lizenz. Seit September 2024 trägt die OpenSearch Software Foundation das Projekt, ein Projekt der Linux Foundation — die Weiterentwicklung hängt damit nicht an einem einzelnen Unternehmen. Elasticsearch selbst folgt lizenzrechtlich einem anderen Modell. Eine juristische Bewertung für Ihren Fall ist das nicht, und für den Betrieb eines Shops ist die Lizenz selten der Auslöser. Der Auslöser steht meist in den Systemanforderungen.
Für Magento Open Source und Adobe Commerce hat Adobe die Entscheidung getroffen. Version 2.4.9, erschienen am 12. Mai 2026, unterstützt nur noch OpenSearch 3; Elasticsearch steht nicht mehr in den Anforderungen. 2.4.8 läuft mit Elasticsearch 8 oder OpenSearch 3, 2.4.7 mit Elasticsearch 8, OpenSearch 2.19 oder 3. Für 2.4.6 nennt Adobe mit aktuellen Patches nur OpenSearch 2.19 und 3, für 2.4.4 und 2.4.5 OpenSearch 2.19. Adobe Commerce on Cloud setzt ausschließlich auf OpenSearch. Und weil Magento 2.4 ohne Suchmaschine gar nicht installiert werden kann, betrifft das jeden Shop, nicht nur die mit großen Sortimenten.
Bei OpenSearch selbst ist 3.x die aktuelle Hauptversion, allgemein verfügbar seit Mai 2025; die neueste Minor-Version 3.9.0 erschien am 29. September 2026. Die Linie 2.x wird mit 2.19 gepflegt, bis OpenSearch 4.0 erscheint, 1.x hat ihr Lebensende erreicht. Für Elasticsearch 7.17 endete der Support am 15. Januar 2026, und Adobe empfiehlt ausdrücklich den Wechsel auf eine kompatible OpenSearch-Version. Wichtig für die Planung: Adobe liefert keine Fehlerbehebungen für Drittkomponenten wie den Suchdienst, sobald deren Lebensende erreicht ist — das liegt beim Betreiber. Wer einen Shop betreibt, muss also den Lebenszyklus der Suche ebenso im Blick haben wie den von Magento.
Umstieg bei Magento und Adobe Commerce: Reihenfolge, Reindex, Staging
Der Umstieg beginnt mit einer Bestandsaufnahme: Magento-Version und Patchstand, Suchdienst und Version, Erweiterungen, die selbst mit der Suche sprechen. Daraus ergibt sich die Reihenfolge. Ein Shop auf 2.4.7 mit Elasticsearch 8 kann auf seinem Stand zu OpenSearch 3 wechseln und danach die Magento-Updates nehmen. Für 2.4.4 und 2.4.5 nennt Adobe nur OpenSearch 2.19; dann führt der Weg über eine Magento-Version, die OpenSearch 2.19 und 3 kennt — also 2.4.6 oder 2.4.7 —, zum Wechsel auf OpenSearch 3 und von dort weiter auf 2.4.9. Wichtig zu wissen: 2.4.8 unterstützt OpenSearch 2.19 nicht mehr. Eine falsche Reihenfolge kostet ein zweites Update-Fenster.
Technisch ist der Suchindex eine Kopie der Katalogdaten, keine eigene Datenquelle. Beim Umstieg wird deshalb nichts migriert, sondern neu aufgebaut: Der neue OpenSearch-Dienst läuft neben dem alten, Magento wird auf ihn umgestellt, die Indexer bauen den Katalogindex neu auf. Bei großen Sortimenten dauert das eine Weile, und genau diese Dauer messen wir vorher, auf einem Staging-System mit einer Kopie der Live-Daten. Dort prüfen wir Suche, Suchvorschläge, Filter und Sortierung gegen den bisherigen Stand, bevor im Live-Shop umgeschaltet wird. Bis zur Umschaltung bedient der alte Dienst Ihre Kunden weiter.
Zum Umstieg gehört mehr als die Konfiguration. Erweiterungen, die eigene Suchabfragen stellen oder den Index erweitern, testen wir gegen die neue Version. Eigene Einstellungen zur Suche, etwa Synonyme und Gewichtungen, prüfen wir nach dem Umstieg gegen dieselben Testsuchen wie vorher. Das Magento-Update selbst testen wir auf demselben Staging-System, bevor es produktiv geht — mit dem Suchdienst, den der Live-Shop danach tatsächlich nutzt. Umgeschaltet wird im vereinbarten Wartungsfenster, mit Backup davor und einem Rückweg, falls etwas nicht stimmt. Danach beobachten wir Indexer, Fehlerprotokolle und die Suchanfragen der ersten Tage. Fertig ist ein Umstieg erst, wenn die Liste der Suchen ohne Treffer nicht länger geworden ist.
Umstieg bei Shopware 6: Variablen, Message Queue, Fehlerverhalten
In Shopware 6 übernimmt ein Suchdienst die ausdrücklich dafür markierten Suchen, standardmäßig Produktsuche, Produktlisting und Suchvorschläge in der Storefront; ohne Suchdienst läuft die Suche sonst über die Datenbank. Angebunden wird OpenSearch über Umgebungsvariablen: OPENSEARCH_URL zeigt auf den Dienst, SHOPWARE_ES_ENABLED schaltet die Suche ein, SHOPWARE_ES_INDEXING_ENABLED die Indexierung, und SHOPWARE_ES_INDEX_PREFIX hält die Indizes verschiedener Umgebungen auseinander. Weil Suche und Indexierung getrennt geschaltet werden, lässt sich der neue Index vollständig aufbauen, bevor die Storefront ihn nutzt. Für den Umstieg heißt das: Der neue Dienst läuft zuerst neben dem alten.
Die Indexierung läuft über Konsolenbefehle und die Message Queue. Befehle wie bin/console es:index, es:reset und es:status steuern und prüfen sie; einen vollständigen Neuaufbau über die Warteschlange startet dal:refresh:index --use-queue. Die eigentliche Arbeit erledigen Worker mit bin/console messenger:consume. Laufen keine Worker, wird der Index nicht aktuell gehalten — die Storefront zeigt dann keine Fehlermeldung, sondern alte Treffer. Deshalb richten wir die Worker als dauerhaft laufende Dienste ein, überwachen die Länge der Warteschlange und messen auf dem Staging-System, wie lange ein Vollindex bei Ihrem Katalog dauert.
Bleibt die Frage, was passiert, wenn der Suchdienst nicht antwortet. SHOPWARE_ES_THROW_EXCEPTION legt das fest: Entweder wirft Shopware eine Ausnahme, oder die Suche fällt auf die Datenbank zurück. Auf dem Staging-System lassen wir Fehler sichtbar werden, damit sie dort auffallen; im Live-Shop ist meist der Rückfall die bessere Wahl. Auch die Suche im Shopware-Admin kann OpenSearch nutzen, mit eigenen Einstellungen; ob sich das lohnt, entscheiden wir mit Ihnen nach Datenmenge. Erweiterungen, die eigene Suchabfragen stellen, prüfen wir gegen den neuen Dienst. Ein langsamerer Shop verkauft mehr als eine Fehlerseite.
Relevanz und Suchqualität: was gute Treffer ausmacht
Eine schnelle Suche ist noch keine gute. Gute Treffer entstehen aus drei Dingen: Daten, die sich durchsuchen lassen, Regeln, die die Sprache Ihrer Kunden abbilden, und einer Gewichtung, die das Wichtige nach oben stellt. Synonyme verbinden Fachbegriff und Umgangssprache, Abkürzung und ausgeschriebene Form. Tippfehlertoleranz fängt vertauschte Buchstaben ab, darf aber aus einer Artikelnummer keinen ähnlichen Artikel machen. Die Gewichtung entscheidet, ob ein Treffer in der Artikelnummer, im Namen oder irgendwo in der Beschreibung zählt. Welche Rolle Mapping und Datenqualität dabei spielen, beschreibt unsere Seite zu Elasticsearch; für OpenSearch gilt dasselbe.
Filter und Facetten sind der zweite Teil der Suche, und oft der wichtigere. Wer nach Merkmalen einschränkt, braucht diese Merkmale als strukturierte Werte, nicht als Fließtext: Größen, Werkstoffe, Einheiten, einheitlich geschrieben. Facetten sollen zeigen, was im Ergebnis tatsächlich vorkommt, und keine Filter anbieten, die zu null Treffern führen. Wir beginnen deshalb mit den echten Suchanfragen aus Ihrem Shop: Welche Begriffe werden gesucht, welche liefern nichts, welche liefern das Falsche? Aus dieser Liste entstehen Synonyme, Gewichtungen und Aufgaben für die Datenpflege. Eine Suche wird nicht in der Konfiguration gut, sondern an der Liste der Suchen ohne Treffer.
Im B2B kommt eine dritte Ebene dazu: wer was sehen darf. Kundengruppen, Sortimentssichtbarkeiten und Kundenpreise müssen in Trefferliste, Filtern und Suchvorschlägen genauso gelten wie im Katalog. Dafür gibt es zwei Wege — die Regeln stehen im Index, oder sie greifen bei der Abfrage —, und beide haben ihren Preis: mehr Indexgröße und Indexierung auf der einen, mehr Rechenarbeit je Anfrage auf der anderen Seite. Welcher Weg passt, hängt an der Zahl der Kundengruppen und daran, wie oft sich Preise ändern. Das gilt für jede Shopsuche, unabhängig vom Suchdienst dahinter. Wie viel an Sichtbarkeitsregeln hängt, kennen wir aus B2B-Shops auf Shopware 6 wie bei M&S Armaturen oder Diderk Heinje Pflanzenhandel, wo Preise erst nach Registrierung sichtbar sind. Ein Preis, den ein Kunde nicht sehen sollte, wiegt schwerer als ein Artikel, den er nicht findet.
Betrieb: OpenSearch auf eigenen Servern in Deutschland
Ein Suchdienst ist kein Plugin, das man einmal installiert. Er braucht Arbeitsspeicher und Plattenplatz, die mit dem Katalog wachsen, eine Version, die zum Shop passt, und jemanden, der ihn beobachtet. Bei Sharpness läuft OpenSearch auf eigenen Servern — Proxmox-PVE-Clustern im Hetzner-Rechenzentrum Falkenstein, Deutschland — in der Umgebung des Shops, zu dem er gehört. Bei Shopware setzen wir ihn wie Valkey beziehungsweise Redis dort ein, wo Katalog und Last es rechtfertigen, bei Magento immer, weil es ohne nicht geht. Ins offene Internet gehört ein Suchdienst nicht; erreichbar ist er nur für seinen Shop. Wir betreiben Shopware- und Magento-Shops und damit auch die Dienste dahinter.
Zum Betrieb gehören Snapshots, Monitoring und Updates. Snapshots sichern die Indizes, damit der Dienst nach einem Ausfall nicht erst auf einen vollständigen Neuaufbau warten muss; die Quelle bleibt ohnehin die Shopdatenbank, die mit den übrigen Backups gesichert wird. Das Monitoring beobachtet den Zustand des Dienstes, Speicher, Antwortzeiten und den Stand der Indexierung — also auch, ob Worker und Indexer laufen. Updates innerhalb der OpenSearch-Hauptversion spielen wir in den vereinbarten Wartungsfenstern ein, nach einem Test auf dem Staging-System. Ein Update, das niemand getestet hat, ist kein Wartungsfenster, sondern ein Risiko.
Größere Schritte planen wir als eigenes Vorhaben: den Wechsel von OpenSearch 2 auf 3 etwa, den Magento 2.4.9 verlangt und der für die Linie 2.x spätestens mit dem Erscheinen von 4.0 ansteht. Der Ablauf ist derselbe wie beim Umstieg von Elasticsearch: neuer Dienst daneben, Index aufbauen, auf Staging prüfen, umschalten, alten Dienst abbauen. Nach dem Go-live betreiben und warten wir Shop und Suche mit einer Service-Level-Vereinbarung: 24, 8 oder 4 Stunden Reaktionszeit, für ein Jahr gebucht; die Arbeit selbst rechnen wir nach Aufwand oder im vereinbarten Rahmen ab. Ohne SLA bearbeiten wir Anfragen innerhalb von 48 Stunden in unseren Geschäftszeiten Mo–Do 9:00–16:00 Uhr, Fr 9:00–13:00 Uhr; Rufbereitschaft gibt es nur mit SLA.