© saicle/Shutterstock.com
Verteilte Echtzeitsuche und -analyse mit Elasticsearch

Verteilte Echtzeitsuche und -analyse mit Elasticsearch


Die verteilte Echtzeitsuch- und -analyse-Engine kann ohne Programmieranpassungen horizontal skaliert werden und unterstützt dabei High Availability mit automatischer Fehlerbehandlung bei Node-Ausfällen. Auch mehrere Indizes zu verwalten, stellt für Elasticsearch kein Problem dar. Die Kommunikation erfolgt über ein einfaches und sehr gut dokumentiertes RESTful-API. Die Liste der Features ist lang. Ein paar der wichtigsten werden wir in diesem Artikel präsentieren und weiterführende Informationsquellen nennen.

In fast jedem Bereich der Softwareentwicklung gibt es eine Vielzahl an unterschiedlichen Produkten. So ist es auch bei den Search-Engines der Fall. Eine große Zahl der Search-Engines, darunter auch Elasticsearch, wird unter einer Open-Source-Lizenz angeboten [1] und ist ohne große Investitionen in eigenen Produkten einsetzbar. Viele dieser Engines haben sich in unterschiedlichsten Einsatzszenarien bewährt. Zu diesen gehört zweifelsohne Elasticsearch [2].

Es baut wie einige andere Searchframeworks (Solr [3], Index Tank [4], Bobo Search [5] etc.) auf Apache Lucene auf. Ohne Erweiterungen unterstützt Elasticsearch die Aufteilung der Daten auf mehrere Shards, eine Art Datencontainer. In einem Set-up mit mehreren Instanzen von Elasticsearch (also mehreren Nodes), die zu einem Cluster zusammengefasst sind, können die Daten durch Sharding auf mehrere Nodes verteilt werden, was die Verwaltung sehr großer Datenmengen erst möglich macht. Gleichzeitig kann auch die Replikation verwendet werden. In diesem Fall werden die Shards auf einem oder mehreren Nodes dupliziert, was sich positiv auf die Geschwindigkeit und auch Ausfallsicherheit auswirkt. Mehrere Indizes können auch unter einem Alias zusammengefasst werden. Dadurch können auch neue Indizes im Produktivbetrieb hinzugefügt oder bestehende ersetzt werden, ohne die Geschwindigkeit oder die Stabilität der Suche negativ zu beeinflussen.

Wie jede ausgewachsene Search-Engine ist auch Elasticsearch sehr vielfältig einsetzbar. Es gibt bereits fertige Extensions für Onlineshops, CRM- und Content-Management-Systeme sowie gute Bibliotheken, um Elasticsearch in eigenen Webanwendungen zu integrieren. Da die Einbindung mit existierenden Extensions fast immer trivial ist, möchten wir uns in diesem Artikel auf eine generische Lösung unter Verwendung einer Bibliothek konzentrieren. Doch bevor wir Elasticsearch benutzen können, muss es zunächst installiert und eingerichtet werden.

Installation und Konfiguration

Als Grundlage...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang