OpenSearch – Was sind die Vorteile im E-Commerce?

11.05.2023
extendedLogo

Wer in einem Onlineshop nach bestimmten Produkten oder Kategorien sucht, möchte in Sekundenschnelle passende Suchergebnisse erhalten. Wie die Volltextsuchmaschine OpenSearch dabei unterstützen kann, zeigen wir in diesem Blogbeitrag.

Die integrierte Suchfunktion ist ein zentrales Element von erfolgreichen Onlineshops. Bei kleineren Shops mit einer überschaubaren Anzahl an Produkten kann die Suche über ein Datenbankmanagementsystem wie MySQL abgebildet werden. Je größer und umfangreicher der Shop und das enthaltene Produktsortiment, desto wichtiger ist die Suche in Bezug auf eine gute User Experience. Für diese Anwendungsfälle wurden Search-Engines wie OpenSearch entwickelt.

Eine leistungsstarke Volltextsuchmaschine bietet Nutzer:innen Orientierung, indem sie Ergebnisse passgenau und schnell ausspielt. Neben Geschwindigkeit und Qualität spielen auch Features wie Volltextabfrage, Auto-Vervollständigung oder Scroll-Suche eine Rolle.

Was ist OpenSearch?

OpenSearch ist eine umfangreiche Such- und Analyse-Suite, die unter der Open-Source-Lizenz Apache 2.0 verfügbar ist. Sie basiert auf der Programmbibliothek Apache Lucene und ermöglicht ein breites Anwendungsspektrum, das Echtzeitüberwachung, Protokollanalyse, Website-Suche und mehr umfasst.

OpenSearch wurde 2021 als Open-Source-Projekt von Amazon Web Services (AWS) initiiert. Das Tool ist als Fork aus der Search-Engine Elasticsearch hervorgegangen, nachdem der Provider Elastic NV einen Lizenzwechsel bekannt gegeben hat. Seitdem wird Elasticsearch nicht mehr unter Open-Source-Lizenz, sondern ausschließlich unter kommerzieller Lizenz angeboten. Zudem ist mit OpenSearch Dashboards ein Fork der Analyseplattform Kibana, die ebenfalls vom Lizenzwechsel des Providers Elastic NV betroffen ist, in OpenSearch enthalten.

Im Juli 2021 wurde OpenSearch 1.0 für den Produkteinsatz freigegeben. War OpenSearch zunächst eine 1:1 Kopie von Elasticsearch 7.10, hat die weitere Entwicklung in den letzten zwei Jahren einen Verlauf genommen, der maßgeblich von der wachsenden Community beeinflusst und gesteuert wurde. Anhand der kurzen Entwicklungszyklen neuer Minor-Versionen auf der Roadmap von OpenSearch wird deutlich, dass die Community noch viel vorhat und das Tool beständig weiterentwickelt.

Vorteile von OpenSearch

Der Einsatz von OpenSearch als Such- und Analyse-Suite bringt viele Vorteile mit sich. Einige davon haben wir im Folgenden aufgeführt:

  • Open Code: Da OpenSearch vollständig dem Open-Source-Prinzip folgt, kann der Code nicht nur individuell verwendet und angepasst, sondern auch kommerziell genutzt werden. Download, Installation und Betrieb sind kostenlos.
  • Programmiersprachen: OpenSearch unterstützt die Verwendung mehrerer Programmiersprachen, darunter Python, Java, JavaScript, Go, Ruby, PHP, .NET und Rust. Darüber hinaus werden die meisten Language-Clients, die mit Elasticsearch 7.10.2 kompatibel sind, ebenfalls von OpenSearch unterstützt. Weitere Informationen darüber stellt OpenSearch auf einer Übersichtsseite für Language-Clients zur Verfügung.
  • Verteilte Architektur: Aufgrund der verteilten Infrastruktur ist OpenSearch in der Lage, auch große Datenmengen in Echtzeit zu aggregieren und zu speichern. Auf Lastspitzen kann dank flexibler Skalierbarkeit schnell reagiert werden.
  • Visualisierung und Reporting: Mithilfe von OpenSearch Dashboards können Daten in Echtzeit überwacht und analysiert werden. Die Daten können grafisch visualisiert und in Reportings exportiert werden.
  • Persistente Datenspeicherung: Daten werden im JSON-Format gespeichert und können von jedem Tool mit JSON-fähiger API weiterverwendet werden.

Hauptansicht von OpenSearch Dashboards | Quelle: OpenSearchHauptansicht von OpenSearch Dashboards | Quelle: OpenSearch

Nachteile von OpenSearch

Da OpenSearch aus Elasticsearch hervorgegangen ist, gibt es in Bezug auf Nutzung und Ressourcenverbrauch bislang nur wenige Unterschiede. Die REST-APIs für Ingest, Suche und Verwaltung sind bei OpenSearch abwärtskompatibel. Unter OpenSearch 1.3 ist beispielsweise die Verwendung von Indizes der Elasticsearch-Versionen 6.0 bis 7.10 möglich.

Es muss jedoch beachtet werden, dass OpenSearch und Elasticsearch unabhängig voneinander weiterentwickelt werden und in Zukunft weitere Unterschiede aufweisen werden. Je später eine Migration von Elasticsearch auf OpenSearch durchgeführt wird, desto schwieriger wird diese zu bewerkstelligen sein.

Zudem sollten Sie prüfen, ob Ihr CMS oder Shopsystem OpenSearch offiziell unterstützt. Einige Tools oder Clients können möglicherweise Code enthalten, der die Funktionalität von OpenSearch einschränkt oder vollständig behindert. Außerdem sollte gewährleistet sein, dass das Interface Ihres Hosting- oder Cloud-Providers über eine OpenSearch-Integration verfügt.

Wie funktioniert OpenSearch?

OpenSearch aggregiert Rohdaten wie Logs, Systemmetriken und Traces via Data Ingestion. Diese Daten können mithilfe der SQL-Abfragesyntax in Form von JSON-Dokumenten oder CSV-Tabellen ausgelesen werden.

Die aggregierten Daten werden indexiert, um für Suchanfragen verwendet zu werden. Dadurch müssen bei eingehenden Suchanfragen nicht sämtliche Dokumente durchsucht werden. Stattdessen werden Indizes, deren Funktionsweise einer Datenbank ähnelt, durchsucht. In jedem Index werden Dokumente gespeichert, die wiederum unterschiedlichen Typen zugeordnet werden können. Auf diese Weise kann die Search-Engine Dokumentendaten fast in Echtzeit durchsuchen.

OpenSearch kann mithilfe von manuellem und dynamischem Mapping definieren, wie Daten in Indizes gespeichert werden. Mit der Funktion Index State Management können Indizes über ihre gesamte Lebensdauer hinweg verwaltet und optimiert werden. Dazu werden verschiedene Richtlinien definiert, die jeweils eine Liste von Zuständen enthalten, die auf den jeweiligen Index angewendet werden. Mithilfe von Index-Rollups können auch neue Indizes aus zuvor definierten Bereichen erstellt werden.

Genau wie Elasticsearch ist auch OpenSearch flexibel skalierbar. Damit große Datenmengen, die die Kapazitäten eines einzelnen Servers übersteigen, nicht zum Bottleneck werden, kann auf Shard-Verteilung zurückgegriffen werden. Dabei handelt es sich um eine Methode zur Datenbankpartitionierung. Große Datenbestände werden auf verschiedene Indizes aufgeteilt. Diese werden wiederum über verschiedene Cluster-Knoten verteilt, um schnelle Antwortzeiten bei Suchanfragen zu gewährleisten.

Migration von Elasticsearch zu OpenSearch

Wer Elasticsearch-Instanzen zu OpenSearch migrieren möchte, kann je nach verwendeter Elasticsearch-Version sowie der Art der Installation auf drei verschiedene Ansätze zurückgreifen.

  1. Mit einem Snapshot können Elasticsearch-Daten auf einen OpenSearch-Cluster migriert werden. Dabei kann es jedoch zu Ausfallzeiten kommen.
  2. Mit einem Restart-Upgrade wird der gesamte Cluster aktualisiert und neu gestartet. Ein Rolling-Upgrade hingegen ermöglicht die Aktualisierung und den Neustart einzelner Cluster-Knoten nacheinander.
  3. Elasticsearch-Knoten können auch durch neue OpenSearch-Knoten ersetzt werden. Diese Methode kommt im Besonderen bei Clustern mit Docker-Unterstützung zum Einsatz.
Snapshot erstellen

Ein Snapshot aller Elasticsearch-Indizes sollte im Vorfeld auf jeden Fall erstellt werden. Wenn es bei der Migration zu einem Datenverlust oder technischen Schwierigkeiten kommt, kann mit dem Backup der Ursprungszustand wiederhergestellt werden.

Alle drei genannten Methoden sind im Detail in der Dokumentation von OpenSearch enthalten.

Welche Shopsysteme sind mit OpenSearch kompatibel?

Bevor Sie einen Umzug von Elasticsearch zu OpenSearch planen, sollten Sie zunächst prüfen, ob Ihr Shopsystem den Einsatz von OpenSearch unterstützt. In der folgenden Tabelle finden Sie eine Übersicht über die unterstützten Versionen populärer Shopsysteme.

Shopsystem Kompatibilität Anmerkungen
Magento 2 ab Magento 2.4.4 kompatibel
Shopware 6 OpenSearch 1.0 oder höher
Shopware 5 (✓) nicht offiziell unterstützt

OpenSearch und Magento 2

Magento Open Source und Adobe Commerce sind seit Release von Version 2.4.4 mit OpenSearch 1.0 sowie neueren Versionen kompatibel. Rückwirkend wurde auch eine Unterstützung für die Magento-Versionen 2.4.3 sowie 2.3.7 realisiert.

Ab Magento 2.4.6 wird OpenSearch per Default als Volltextsuchmaschine unterstützt. Von Adobe wird der Einsatz von OpenSearch 2.0 oder neueren Versionen empfohlen. Weitere Informationen darüber gibt es in der Dokumentation von Adobe.

OpenSearch und Shopware 6

Shopware 6 ist offiziell mit OpenSearch kompatibel. OpenSearch 1.0 oder eine neuere OpenSearch-Version wird für den Betrieb von Shopware 6 vorausgesetzt. Für den Einsatz von OpenSearch wird wiederum Shopware 6.4.0.0 oder eine neuere Shopware-Version benötigt. Weitere Informationen sind in den Systemvoraussetzungen von Shopware 6 zu finden.

OpenSearch und Shopware 5

Shopware 5 enthält offiziell keine Unterstützung für OpenSearch. Das hat mehrere Gründe. Zum einen wird Shopware 5 selbst nur noch bis August 2024 offiziell unterstützt und das letzte Feature-Update erscheint sogar schon in diesem Jahr. Zum anderen ist Shopware 5 in allen bisher erschienenen Versionen mit Elasticsearch-Versionen kompatibel, die noch unter Open-Source-Lizenz fallen. Gewerbetreibende, die einen Onlineshop auf Basis von Shopware 5 besitzen, sind also nicht zwangsläufig auf eine kommerzielle Elasticsearch-Version angewiesen.

Diese Gründe machen es für den Provider nicht notwendig, offiziellen Support von OpenSearch zu integrieren. Da OpenSearch aber grundlegend abwärtskompatibel zu Elasticsearch 7.10 und älteren Versionen ist, sollte der Einsatz von OpenSearch unter Shopware 5 dennoch möglich sein.

Alternativen zu OpenSearch

Neben OpenSearch gibt es auch einige Alternativen, auf die Gewerbetreibende im E-Commerce zurückgreifen können, um eine effiziente Volltextsuche in ihren Onlineshop zu integrieren.

Elasticsearch

Elasticsearch ist die Such- und Analyse-Suite, aus der OpenSearch als Fork hervorgegangen ist. Die Lösung, die 2010 als Open-Source-Projekt initiiert wurde, war für Webanwendungen mit komplexen Anforderungen und großen Datenbeständen lange Zeit state of the art.

Elasticsearch besticht vor allem durch seinen großen Funktionsumfang. Sowohl strukturierte als auch unstrukturierte Daten können mit Elasticsearch verarbeitet werden. Dabei spielt es keine Rolle, ob es sich um Textdaten, numerische Daten, Geodaten oder andere Datentypen handelt. Aufgrund der verteilten Natur können große Datenmengen via Sharding verteilt werden, um Lastspitzen abzufedern.

Aufgrund der Lizenzänderung, die im Januar 2021 in Kraft getreten ist, stehen neuere Versionen von Elasticsearch nur noch proprietär gegen Lizenzgebühren zur Verfügung. Bei vielen Hosting- und Cloud-Providern (einschließlich maxcluster) ist Elasticsearch daher nur bis Version 7.10.2 verfügbar.

Solr

Apache Solr ist ein Fulltext-Search-Tool, das unter Open-Source-Lizenz verfügbar ist. Die Lösung basiert genau wie OpenSearch und Elasticsearch auf der Programmbibliothek Apache Lucene. Solr überzeugt im Besonderen durch seine einfache Skalierbarkeit und eine hohe Fehlertoleranz. Daten können ohne Unterbrechung in Echtzeit indexiert werden. Die Funktionsumgebung der Software ist sehr übersichtlich, bietet viele Features und kann um zahlreiche Plugins erweitert werden.

Sphinx

Die Volltextsuchmaschine Sphinx ist eine Open-Source-Applikation, mit der große Datenmengen effizient durchsucht werden können. Sphinx kann Daten aus verschiedenen Quellen wie SQL-Datenbanken oder NoSQL-Speichern stapelweise indizieren und durchsuchen.

MySQL

Wie eingangs erwähnt, kann MySQL bei kleineren Onlineshops eine geeignete Alternative für die Suchfunktion des Shops sein. MySQL-Datenbankserver basieren auf SQL (Structured Query Language) und sind multithreading-fähig und schnell. Bei größeren Produktkatalogen mit vielen Varianten können Produktsuchen mit den zuvor vorgestellten Suchmaschinen jedoch effizienter und schneller ausgeführt werden.

OpenSearch bei maxcluster

Seit 2022 ist OpenSearch bei maxcluster ein fester Bestandteil unseres E-Commerce Stacks und steht neben Elasticsearch (bis einschließlich Version 7.10.2), Sphinx und Solr als Search-Engine auf allen Clustern zur Verfügung.

OpenSearch kann über das Application Center mit nur wenigen Klicks installiert und eingerichtet werden. Weitere Informationen zum OpenSearch-Hosting bei maxcluster haben wir in unserem OpenSearch-FAQ zusammengefasst. Bei Fragen oder Problemen bei der Einrichtung und Verwendung von OpenSearch, wenden Sie sich gerne telefonisch unter +49 5251 4141 30 oder per E-Mail an support@maxcluster.de an unser Service-Team.

Fazit

Ursprünglich als Reaktion auf den Lizenzwechsel von Elasticsearch initiiert, ist OpenSearch in kurzer Zeit zu einem fest etablierten Player unter den Volltextsuchmaschinen geworden. Mit AWS und der Open-Source-Community hat die Software starke Treiber im Hintergrund. Als Fork von Elasticsearch 7.10 bringt OpenSearch zudem ein stabiles Grundgerüst mit, auf dessen Basis die Community die weitere Entwicklung vorantreibt.

Wer eine leistungsfähige Search- und Analyse-Suite einsetzen möchte und dabei Wert auf Open Source legt, ist mit OpenSearch in vielen Fällen gut beraten. Vor dem Einsatz sollte jedoch geprüft werden, ob die eigene Webanwendung OpenSearch unterstützt. Zudem sollte sichergestellt sein, dass der gewählte Hosting- oder Cloud-Provider die Applikation in seinen Tech-Stack integriert hat.


Veröffentlicht am 11.05.2023 | DR