English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Elasticsearch 简介

Elasticsearch ist ein Suchserver, der auf Apache Lucene basiert. Er wurde von Shay Banon entwickelt und2010veröffentlicht. Wird derzeit von Elasticsearch BV unterhalten. Seine neueste Version ist7.0.0.

Elasticsearch ist ein Echtzeit-distribuierter Open-Source-Textsuch- und Analyse-Engine. Sie kann über eine RESTful-Web-Schnittstelle erreicht werden und verwendet unmodellierte JSON-Dokumente (JavaScript Object Notation) zur Datenspeicherung. Sie wurde in der Programmiersprache Java entwickelt und kann daher auf verschiedenen Plattformen ausgeführt werden. Sie ermöglicht es den Benutzern, große Datenmengen mit hoher Geschwindigkeit zu durchsuchen.

Eigenschaft

Die häufigsten Eigenschaften von Elasticsearch sind wie folgt-

  • Elasticsearch kann bis zu PB-Skalen an strukturierten und unstrukturierten Daten erweitert werden.

  • Elasticsearch kann Dokumentenspeicher wie MongoDB und RavenDB ersetzen.

  • Elasticsearch nutzt Dekenormalisierung, um die Suchleistung zu verbessern.

  • Elasticsearch ist einer der beliebtesten Unternehmenssuchmaschinen und wird derzeit von vielen großen Organisationen wie Wikipedia, The Guardian, StackOverflow und GitHub verwendet.

  • Elasticsearch ist eine Open-Source-Software und steht unter der Apache-Lizenzversion zur Verfügung.2unter Version .0 verwendet.

Schlüsselkonzepte

Die Schlüsselkonzepte von Elasticsearch sind wie folgt-

Knoten

Es bezieht sich auf eine einzelne Ausführungsinstanz von Elasticsearch. Ein einzelner physischer und virtueller Server kann mehrere Knoten aufnehmen, was von der Fähigkeit ihrer physischen Ressourcen (wie RAM, Speicher und Verarbeitungskapazität) abhängt.

群集

Es ist eine Sammlung von einem oder mehreren Knoten. Der Cluster bietet für alle Daten eine kollektive Indexierung und Suchfunktion über alle Knoten hinweg.

索引

Es ist eine Sammlung von Dokumenten verschiedener Typen und deren Eigenschaften. Der Index verwendet auch das Konzept der Fragmentierung, um die Leistung zu verbessern. Zum Beispiel enthält eine Gruppe von Dokumenten Daten einer sozialen Netzwerk-App.

文档

Es ist eine Sammlung von Feldern, die auf eine bestimmte Weise in JSON-Format definiert sind. Jedes Dokument gehört zu einem bestimmten Typ und befindet sich im Index. Jedes Dokument ist mit einem eindeutigen Bezeichner namens UID verbunden.

碎片

Indizes werden horizontal in Fragmente unterteilt. Dies bedeutet, dass jeder Fragment jede Eigenschaft der Dokumente enthält, aber weniger JSON-Objekte als der Index enthält. Die horizontale Trennung macht das Fragment zu einem独立的 Knoten, der in jedem Knoten gespeichert werden kann. Der Hauptfragment ist der ursprüngliche horizontale Teil des Indexes, und diese Hauptfragmente werden dann in die Fragmente der Kopie kopiert.

Kopie

Elasticsearch ermöglicht es den Benutzern, Indizes und Fragmentkopien zu erstellen. Die Kopie verbessert nicht nur die Verfügbarkeit der Daten im Falle eines Ausfalls, sondern verbessert auch die Suchleistung durch parallele Suchoperationen in diesen Kopien.

Vorteile

  • Elasticsearch wurde auf Java entwickelt, was seine Kompatibilität auf fast allen Plattformen gewährleistet.

  • Elasticsearch ist in Echtzeit, das bedeutet, dass Dokumente, die eine Sekunde später hinzugefügt werden, in diesem Motor durchsucht werden können.

  • Elasticsearch ist verteilt und kann daher leicht in jeder großen Organisation erweitert und integriert werden.

  • Die Erstellung vollständiger Backups mit dem Konzept von gateway ist sehr einfach, was in Elasticsearch sehr häufig vorkommt.

  • Im Vergleich zu Apache Solr ist die Verarbeitung mehrerer Benutzer in Elasticsearch sehr einfach.

  • Elasticsearch verwendet JSON-Objekte als Antwort, was die Verwendung einer Vielzahl verschiedener Programmiersprachen zur Aufrufung des Elasticsearch-Servers ermöglicht.

  • Neben der Unterstützung für Dokumententypen, die keine Textdarstellung unterstützen, unterstützt Elasticsearch fast alle Dokumententypen.

Nachteile

  • Bei der Verarbeitung von Anfragen und Antworten bietet Elasticsearch keine mehrsprachige Unterstützung (nur in JSON verfügbar), anders als Apache Solr, der CSV, XML und JSON-Formate unterstützt.

  • 有时,Elasticsearch会出现脑裂情况的问题。

Elasticsearch和RDBMS之间的比较

在Elasticsearch中,索引类似于RDBMS(关系数据库管理系统)中的表。每个表都是行的集合,就像每个索引都是Elasticsearch中的文档的集合一样。

下表对这些术语进行了直接比较-

Elasticsearch关系数据库管理系统(RDBMS)
群集数据库
碎片碎片
索引
字段
文档