Die Kurzversion: Wir helfen jeder und jedem, Gesuchtes schneller zu finden – ob es darum geht, ein ganz bestimmtes Dokument aus dem Intranet zu fischen, oder darum, Kund:innen bei der Suche nach dem perfekten Paar Schuhe zu unterstützen. Und für alle, die es ausführlicher möchten:
Elasticsearch ist eine kostenlose und offene verteilte Suchmaschine und Analytics-Engine für Daten aller Art – von Textdaten über numerische Daten und Geodaten bis hin zu strukturierten und unstrukturierten Daten. Elasticsearch basiert auf Apache Lucene und wurde 2010 von Elasticsearch N.V. (jetzt unter dem Namen „Elastic“ firmierend) eingeführt. Mit seinen einfachen REST-APIs, seiner Verteiltheit, seiner Geschwindigkeit und seiner Skalierbarkeit ist Elasticsearch der zentrale Bestandteil des Elastic Stack – einer Sammlung von kostenlosen und offenen Tools für das Ingestieren, Anreichern, Speichern, Analysieren und Visualisieren von Daten. Der Elastic Stack, häufig auch als „ELK Stack“ (Elasticsearch, Logstash und Kibana) bezeichnet, enthält jetzt mit „Beats“ auch eine Reihe leichtgewichtiger Daten-Shipper für das Senden von Daten an Elasticsearch.
Erste Schritte mit Elasticsearch: Speichern, Durchsuchen und Analysieren mit dem kostenlosen und offenen Elastic Stack
Video ansehen
Einführung in ELK: Erste Schritte mit Logdaten, Metriken, Dateningestion und nutzerdefinierten Visualisierungen in Kibana
Video ansehen
Erste Schritte mit Elastic Cloud: So starten Sie Ihr erstes Deployment
Mehr erfahren
Elasticsearch kann dank seiner Geschwindigkeit und Skalierbarkeit sowie der Fähigkeit, viele verschiedene Inhalte zu indexieren, für eine Reihe von Anwendungsfällen genutzt werden:
- Suche in Anwendungen (App Search)
- Suche auf Websites (Site Search)
- Suche in Unternehmensdaten (Enterprise Search)
- Logging und Log Analytics
- Infrastrukturmetriken und Container-Monitoring
- Monitoring der Anwendungsleistung (Application Performance Monitoring, APM)
- Analyse und Visualisierung von Geodaten
- Analyse von Sicherheitsdaten (Security Analytics)
- Business-Analytics
Elasticsearch empfängt Rohdaten aus einer Vielzahl von Quellen, wie Logs, Systemmetriken und Webanwendungen. Dazu werden die Rohdaten im Rahmen des Ingestionsprozesses geparst, normalisiert und angereichert. Anschließend werden sie in Elasticsearch indexiert. Nach dem Indexieren in Elasticsearch können Nutzer:innen komplexe Abfragen starten und mittels Aggregationen komplexe Zusammenfassungen ihrer Daten abrufen. Kibana bietet dann die Möglichkeit, die Daten auf vielfältige Weise zu visualisieren, die entsprechenden Dashboards mit anderen zu teilen und den Elastic Stack zu verwalten.
Ein Elasticsearch-Index ist eine Sammlung von Dokumenten, die irgendwie miteinander in Beziehung stehen. Elasticsearch speichert Daten als JSON-Dokumente. In jedem Dokument wird eine Gruppe von Schlüsseln (Feldnamen oder Eigenschaften) mit den zugehörigen Werten (Zeichenfolgen, Zahlen, Booleschen Ausdrücken, Datumsangaben, Werte-Arrays, geografischen Positionen oder anderen Datentypen) korreliert.
Elasticsearch nutzt eine Datenstruktur namens invertierter Index, die sehr schnelle Volltextsuchen ermöglicht. In einem invertierten Index wird jedes in den Dokumenten mindestens einmal vorkommende Wort zusammen mit der Angabe aufgeführt, in welchen Dokumenten die einzelnen Wörter vorkommen.
Während des Indexierungsprozesses speichert Elasticsearch Dokumente und erstellt einen invertierten Index, damit die Dokumentdaten in Fast-Echtzeit durchsucht werden können. Das Indexieren wird mit der Index-API gestartet, mit der Sie ein JSON-Dokument in einem konkreten Index hinzufügen oder aktualisieren können.
Logstash, eines der Kernprodukte des Elastic Stack, wird zum Aggregieren und Verarbeiten von Daten und zum Senden dieser Daten an Elasticsearch verwendet. Logstash ist eine serverseitige Open-Source-Datenverarbeitungspipeline, mit deren Hilfe Daten aus mehreren Quellen gleichzeitig ingestiert, angereichert und umgewandelt werden können, bevor sie in Elasticsearch indexiert werden.
Kibana ist ein Tool zum Visualisieren und Verwalten von Daten für Elasticsearch und bietet in Echtzeit aktualisierte Histogramme, Liniendiagramme, Tortendiagramme und Landkarten. Darüber hinaus enthält Kibana weiterführende Anwendungen, wie zum Beispiel Canvas zum Erstellen individuell angepasster dynamischer Infografiken auf der Basis der Daten der Nutzer:innen und Elastic Maps zum Visualisieren von Geodaten.
Elasticsearch ist schnell. Da Elasticsearch auf Lucene basiert, kann es seine Trümpfe besonders bei der Volltextsuche ausspielen. Elasticsearch ist darüber hinaus eine Fast-Echtzeit-Suchmaschine: Der Zeitraum zwischen dem Indexieren eines Dokuments und der Auffindbarkeit des Dokuments durch die Suche ist sehr kurz – in der Regel nur eine Sekunde. Das macht Elasticsearch besonders für Anwendungsfälle geeignet, in denen die Zeit eine Rolle spielt, wie Security Analytics und Infrastruktur-Monitoring.
Elasticsearch ist von Natur aus verteilt. Die in Elasticsearch gespeicherten Dokumente werden auf verschiedene Container, die sogenannten Shards, verteilt, die dupliziert werden, sodass im Fall eines Hardware-Ausfalls redundante Kopien parat sind. Die Verteiltheit von Elasticsearch macht es möglich, Elasticsearch auf Hunderte (oder sogar Tausende) von Servern zu skalieren und Daten Petabyte-weise zu verarbeiten.
Elasticsearch verfügt über eine Vielzahl von Funktionen. Neben seiner Geschwindigkeit, Skalierbarkeit und Resilienz kann Elasticsearch auch mit einer Reihe leistungsfähiger integrierter Funktionen aufwarten, die es noch effizienter machen, Daten zu speichern und nach ihnen zu suchen. Dazu gehören zum Beispiel Daten-Rollups und das Index-Lifecycle-Management.
Der Elastic Stack vereinfacht das Ingestieren und Visualisieren von Daten sowie das Erstellen von Berichten. Dank der Beats- und Logstash-Integrationen lassen sich Daten ganz einfach verarbeiten, bevor sie in Elasticsearch indexiert werden. Und Kibana bietet Echtzeit-Visualisierung von Elasticsearch-Daten sowie Funktionen für den schnellen Zugriff auf APM-Daten, Logdaten und Infrastrukturmetriken.
Ja, die kostenlosen und offenen Features von Elasticsearch können unter der SSPL oder der Elastic-Lizenz kostenlos genutzt werden. Hinzu kommen weitere kostenlose Features, die unter der Elastic-Lizenz bereitstehen, sowie kostenpflichtige Abonnements, mit denen Sie Zugriff auf den Support sowie auf zusätzliche Features, wie Alerting und Machine Learning, erhalten.
Die offizielle Distribution von Elasticsearch ist auf der Elastic-Website verfügbar.
Elasticsearch ist ein von Elastic verwaltetes kostenloses und offenes Projekt. Zur Codebasis haben sowohl Elastic-eigene als auch externe Entwickler beigetragen.
Im Elasticsearch-GitHub-Repository kann jeder ein Pull-Request posten. Elastic führt eine transparente Review aller Pull-Requests durch, bevor sie in die Codebasis eingepflegt werden.
Elasticsearch kann über Elasticsearch Service (verfügbar auf Amazon Web Services (AWS), Google Cloud und Alibaba Cloud) als gehosteter, verwalteter Dienst bereitgestellt werden. Es ist aber auch möglich, Elasticsearch herunterzuladen und auf Ihrer eigenen Hardware oder in der Cloud zu installieren. Anleitungen zum Herunterladen, Installieren und Konfigurieren von Elasticsearch finden Sie in der Elasticsearch-Dokumentation.
Nutzer:innen, die ihre Deployments von einer gemeinsamen Konsole aus bereitstellen, verwalten und überwachen möchten, ohne dafür eine öffentliche Cloud zu verwenden, bietet Elastic sowohl Elastic Cloud Enterprise (kann auf öffentlichen oder privaten Clouds, virtuellen Maschinen oder Bare-Metal-Hardware bereitgestellt werden) als auch die Abonnementoption einer privaten Bereitstellung.
Elasticsearch unterstützt 34 Textsprachen, von Arabisch bis Türkisch, und stellt für jede von ihnen eigene Analyzers bereit. Die vollständige Liste finden Sie in der Elasticsearch Language Analyzer-Dokumentation. Weitere Sprachen lassen sich über individuelle Plugins hinzufügen.
Ja, Elasticsearch stellt ein vollständiges und leistungsfähiges Angebot an REST-APIs für Aufgaben wie die Prüfung der Cluster-Integrität, die Durchführung von CRUD(Create, Read, Update, and Delete)- und Suchoperationen in Indizes und für erweiterte Suchoperationen, wie Filtern und Aggregieren, bereit.