Elastic Search

Volltextsuche mit ElasticSearch

Eine ausgereifte Suchfunktion ist ein Muss in jedem guten Online-Shop, ansonsten kann die Suche die „User Experience“ des Nutzers entscheidend beeinflussen – sowohl positiv, als auch negativ. Das eine ausgereifte Suche schwer und aufwändig zu programmieren ist, sehen wir an der Dominanz von Google. Die kleine Firma aus Mountainview hat sehr viele Ressourcen darauf verwendet die Suche zu perfektionieren und liegt bei einem Marktanteil von 90%. Dadurch sind Ihre Kunden an gute Suchergebnisse gewöhnt. Findet der Nutzer nicht (schnell und unkompliziert) was er sucht, wird er mit hoher Wahrscheinlichkeit einen anderen Online-Shop aufsuchen.

Wenn das Gesuchte in Ihrem Shop vorhanden ist, sollten Sie also sicherstellen, dass der Nutzer es z.B. auch trotz Rechtschreibfehlern findet. So kann eine gelungene Suchfunktion zu mehr Kundenzufriedenheit und höheren Conversions führen.

Professionelle Suchmaschine mit ElasticSearch

Die Volltextsuche mit ElasticSearch basiert auf der Programmbibliothek Apache Lucene. Als NoSQL-System verfolgt ElasticSearch einen dokumentenzentrierten Ansatz. Der Suchserver ElasticSearch speichert die zu indexierenden Daten als JSON-Dokumente und ermöglicht die Ablage großer Datenmengen. Nicht nur Volltextinhalte, sondern auch strukturierte Daten können mit Hilfe von ElasticSearch ausgelesen und gruppiert werden. Über HTTP oder die Java-API werden die in JSON formulierten Dokumente und Suchanfragen ausgetauscht.

Wie kann ElasticSearch auch große Datenmengen verarbeiten?

ElasticSearch legt die JSON Dokumente in Indizes ab. In einem Index kann eine unbegrenzte Anzahl an Dokumenten verschiedenen Typs abgelegt werden. Gespeichert werden diese in mehreren Lucene-Instanzen (Primary Shards), durch diese Lastenverteilung können komplexere Suchanfragen durch mehrere Instanzen gleichzeitig laufen. Auch physisch kann die Last verteilt werden, indem die Shards eines Index auf verschiedene Knoten eines Clusters verteilt werden. Als Sicherheitskopien werden Replica Shards von jedem Primary Shard erstellt und auf anderen Knoten eines Clusters angelegt, um bei Ausfall eines Knotens den Datenverlust zu verhindern. Damit die Daten sicher und verfügbar sind, identifizieren die Cluster neue und ausgefallene Knoten und reorganisieren die Daten automatisch.

Master-Slave-Muster

Der Clusteransatz von ElasticSearch folgt dem Master-Slave-Muster, so dass jeder Knoten eines Clusters die Rolle des Masters oder Slaves einnehmen kann. In einem Netzwerk können mehrere Cluster parallel laufen. Jeder Knoten sucht beim Start im Discovery-Prozess durch Uni- oder Multicast im selben Netzwerk nach anderen Knoten. Über den Clusternamen wird entschieden, ob ein anderer Knoten zum selben Cluster gehört. Die Koordination des Clusters übernimmt der Master-Knoten, welcher unter den Knoten ausgewählt wird. Bei Ausfall des Master-Knotens wird durch die anderen Knoten ein neuer Master ausgehandelt.

ElasticSearch punktet durch Schemafreiheit

Die Schemafreiheit von ElasticSearch birgt einen entscheidenden Vorteil. So müssen die zu verarbeitenden Dokumente keine expliziten Informationen über Datentypen oder andere Eigenschaften enthalten und können stattdessen direkt an das System übergeben werden. ElasticSearch ist in der Lage Schemata mit Hilfe von Heuristiken über die übergebenen Daten abzuleiten, so dass Strings, verschiedene Formate und numerische Werte automatisch erkannt werden. So ist auch eine Verarbeitung semistrukturierter Daten möglich.

Vorteile:

  • Hochverfügbarkeit und Lastverteilung durch einfaches Clustering
  • REST- und Java-API
  • Arbeitet schemalos und dokumentenorientiert
  • Suche in Echtzeit
  • Einfache Handhabung / Entwicklerfreundlich
  • Skalierbar
  • Kontextuelle Suche
  • Autocomplete
  • Ergebnis Snippets
  • Geolocation
  • Mehrsprachige Suche

ElasticSearch Einbindung in ebiz-trader

ebiz-trader ist eine Software mit der Sie einen Marktplatz im Internet bauen können, in dem Händler Ihre Produkte anbieten. Bestes Beispiel für erfolgreiche Marktplätze sind Amazon, Alibaba oder eBay. Das so ein Marktplatz natürlich mit viel Aufwand, Know-How und Arbeit verbunden ist, müssen wir nicht erklären. Die Chancen, wenn er läuft, sind riesig. Wir waren deshalb die ersten, die ein Modul für eine ElasticSearch Anbindung an ebiz-trader entwickelt haben, damit die Benutzererfahrung von ebiz-trader durch eine optimale Suche unterstützt wird.

Mehr Beiträge aus unserem Magazin

Alle Beiträge ansehen