Elasticsearch -Tutorial für Anfänger

Elasticsearch -Tutorial für Anfänger
In dieser Lektion werden wir sehen, wie wir Elasticsearch verwenden können und was es nutzt. Wir werden uns verschiedene Terminologien, die damit verbunden sind, gründlich betrachten und auch damit beginnen.

ElasticSearch -Datenbank

ElasticSearch ist eine der beliebtesten NOSQL-Datenbanken, mit der textbasierte Daten gespeichert und gesucht werden können. Es basiert auf der Lucene -Indexierungstechnologie und ermöglicht das Abrufen von Suchern in Millisekunden auf der Grundlage von Daten, die indexiert sind.

Basierend auf der Elasticsearch -Website finden Sie hier die Definition:

Elasticsearch ist eine Open -Source -Verteilte, erholsame Such- und Analytics -Engine, mit der eine wachsende Anzahl von Anwendungsfällen gelöst werden kann.

Das waren einige hochrangige Worte über Elasticsarch. Lassen Sie uns die Konzepte hier im Detail verstehen.

  • Verteilt: Elasticsearch unterteilt die Daten, die sie enthält, in mehrere Knoten und verwendet Master-Sklave Algorithmus intern
  • Erholsam: Elasticsearch unterstützt Datenbankabfragen über REST -APIs. Dies bedeutet, dass wir einfache HTTP -Aufrufe verwenden und HTTP -Methoden wie GET, Post, Puting, Löschen usw. verwenden können. Zugriff auf Daten.
  • Such- und Analytics -Engine: ES unterstützt hoch analytische Abfragen,.
  • Horizontal skalierbar: Diese Art von Scailing bezieht sich auf das Hinzufügen weiterer Maschinen zu einem vorhandenen Cluster. Dies bedeutet, dass ES in der Lage ist, mehr Knoten in seinem Cluster zu akzeptieren und keine Ausfallzeit für erforderliche Upgrades für das System zu liefern. Schauen Sie sich das Bild unten an, um die Skalierungskonzepte zu verstehen:
  • Vertikales und horizontales Scailing

Erste Schritte mit der Elasticsearch -Datenbank

Um Elasticsearch zu verwenden, muss es auf der Maschine installiert werden. Lesen Sie dazu die Installation Elasticsearch auf Ubuntu.

Stellen Sie sicher.

Elasticsearch: Konzepte und Komponenten

In diesem Abschnitt werden wir sehen, welche Komponenten und Konzepte im Herzen von Elasticsarch liegen. Das Verständnis dieser Konzepte ist wichtig zu verstehen, wie ES funktioniert:

  • Cluster: Ein Cluster ist eine Sammlung von Servermaschinen (Knoten), die die Daten enthält. Die Daten werden zwischen mehreren Knoten aufgeteilt, damit sie repliziert werden können und ein einzelner Ausfallpunkt (FOF) mit dem ES -Server nicht auftritt. Standardname des Clusters ist Elasticsarch. Jeder Knoten in einem Cluster stellt eine Verbindung zum Cluster mit einer URL und dem Clusternamen her, sodass es wichtig ist, diesen Namen deutlich und klar zu halten.
  • Knoten: Eine Knotenmaschine ist Teil eines Servers und wird als einzelne Maschine bezeichnet. Es speichert die Daten und bietet Indexierungs- und Suchfunktionen sowie andere Knoten für den Cluster.

    Aufgrund des Konzepts der horizontalen Skalierung können wir praktisch eine unendliche Anzahl von Knoten in einem ES -Cluster hinzufügen, um ihm viel mehr Kraft- und Indexierungsfunktionen zu verleihen.

  • Index: Ein Index ist eine Dokumentsammlung mit etwas ähnlichen Eigenschaften. Ein Index ist einer Datenbank in einer SQL-basierten Umgebung ziemlich ähnlich.
  • Typ: Ein Typ wird verwendet, um Daten zwischen demselben Index zu trennen. Zum Beispiel kann die Kundendatenbank/der Kundendatenbank/den Index mehrere Typen wie Benutzer, Payment_Type usw. haben.

    Beachten Sie, dass die Typen von ES v6 veraltet sind.0.0 ab. Lesen Sie hier, warum dies getan wurde.

  • Dokumentieren: Ein Dokument ist die niedrigste Einheitstufe, die Daten darstellt. Stellen Sie sich es wie ein JSON -Objekt vor, das Ihre Daten enthält. Es ist möglich, in einem Index so viele Dokumente zu indizieren.

Sucharten in Elasticsearch

Elasticsearch ist bekannt für seine nahezu Echtzeit-Suchfunktionen und die Flexibilität, die es zur Verfügung stellt. Lassen Sie uns untersuchen, wie Sie die Suche mit verschiedenen Datenarten verwenden.

  • Strukturierte Suche: Diese Art der Suche wird auf Daten ausgeführt, die ein vordefiniertes Format wie Daten, Uhrzeiten und Zahlen haben. Mit dem vordefinierten Format entsteht die Flexibilität, gemeinsame Operationen auszuführen, wie beim Vergleich von Werten in einem Bereich von Daten. Interessant, Textdaten können auch strukturiert werden. Dies kann passieren, wenn ein Feld eine feste Anzahl von Werten festgelegt hat. Zum Beispiel kann der Name der Datenbanken, MySQL, MongoDB, Elasticsearch, Neo4j usw. sein, usw. Bei strukturierter Suche ist die Antwort auf die von uns ausgeführten Abfragen entweder ein Ja oder Nein, das.
  • Volltext-Suche: Diese Art der Suche hängt von zwei wichtigen Faktoren ab, Relevanz Und Analyse. Mit Relevanz bestimmen wir, wie gut einige Daten mit der Abfrage übereinstimmen, indem wir eine Punktzahl für die resultierenden Dokumente definieren. Diese Punktzahl wird von ES selbst bereitgestellt. Analyse Bezieht sich darauf, den Text in normalisierte Token zu zerlegen, um einen umgekehrten Index zu erstellen.
  • Multifield -Suche: Mit der Anzahl der analytischen Abfragen, die jemals auf den gespeicherten Daten in ES zunehmen, stehen wir normalerweise nicht nur einfache Übereinstimmungsabfragen gegenüber. Die Anforderungen wurden an Abfragen ausgeführt, die sich über mehrere Felder erstrecken und eine bewertete sortierte Liste der Daten haben, die uns von der Datenbank selbst an uns zurückgegeben wurden. Auf diese Weise können Daten dem Endbenutzer auf eine viel effizientere Weise vorhanden sein.
  • Proimity -Matching: Abfragen heute sind viel mehr als nur zu identifizieren, ob einige Textdaten eine andere Zeichenfolge enthalten oder nicht. Es geht darum, die Beziehung zwischen Daten zu erstellen, damit sie bewertet und mit dem Kontext übereinstimmen können. Zum Beispiel:
    • Ball schlug John
    • John schlug den Ball
    • John kaufte einen neuen Ball, der Jaen Garden getroffen wurde

    Eine Match -Abfrage findet alle drei Dokumente bei der Suche nach Ball schlug. Eine Proximity -Suche kann uns sagen, wie weit diese beiden Wörter in derselben Zeile oder in denselben Absatz erscheinen.

  • Partielle Übereinstimmung: Oft müssen wir Teil-Matchin-Abfragen ausführen. Durch teilweise Matching können wir Abfragen ausführen, die teilweise übereinstimmen. Um dies zu visualisieren, schauen wir uns ähnliche SQL -basierte Abfragen an:

    SQL -Abfragen: Partial Matching

    Wo Name "%John%" wie
    Und nennen Sie "%Red%"
    Und nennen Sie wie "%garten%"

    Bei einigen Gelegenheiten müssen wir nur teilweise Übereinstimmungsabfragen ausführen, auch wenn sie als Brute-Force-Techniken betrachtet werden können.

Integration mit Kibana

Wenn es um eine Analyse-Engine geht, müssen wir normalerweise Analyseabfragen in einer Business-Intelligence-Domäne (BI) ausführen. Wenn es um Business -Analysten oder Datenanalysten geht, ist es nicht fair anzunehmen, dass die Leute eine Programmiersprache kennen, wenn sie die in ES Cluster vorhandenen Daten visualisieren möchten. Dieses Problem wird von Kibana gelöst.
Kibana bietet BI so viele Vorteile, dass Menschen Daten tatsächlich mit einem ausgezeichneten, anpassbaren Dashboard visualisieren und Daten inetraktiv sehen können. Schauen wir uns hier einige seiner Vorteile an.

Interaktive Diagramme

Im Kern von Kibana befinden sich interaktive Diagramme wie diese:

Kibana wird mit verschiedenen Arten von Diagrammen wie Kreisdiagrammen, Sunbursts, Histogrammen und vielem mehr unterstützt, die die vollständigen Aggregationsfunktionen von ES nutzen.

Unterstützung zu Kartierung

Kibana unterstützt auch eine vollständige Geo-Aggregation, die es uns ermöglicht, unsere Daten zu Geo-Map. Ist das nicht cool??!

Vorgefertigte Aggregationen und Filter

Bei vorgefertigten Aggregationen und Filtern ist es möglich, buchstäblich zu frequentierte Abfragen innerhalb des Kibana-Dashboards zu sprengen, zu fallen und zu betreiben. Mit nur wenigen Klicks ist es möglich, aggregierte Abfragen auszuführen und Ergebnisse in der Form interaktiver Diagramme vorzustellen.

Einfache Verteilung der Dashboards

Mit Kibana ist es auch sehr einfach, Dashboard. Wir können Dashboards leicht in unser internes Wiki oder Webseiten einfügen.

Feature -Bilder aufgenommen Form Kibana Produktseite.

Mit Elasticsarch

Um die Instanzdetails und die Clusterinformationen anzuzeigen, führen Sie den folgenden Befehl aus:

Jetzt können wir versuchen, einige Daten mit dem folgenden Befehl in ES einzuführen:

Daten einfügen

Locke \
-X post 'http: // localhost: 9200/linuxHint/hello/1' \
-H 'Inhaltstyp: application /json' \
-D '"Name": "LinuxHint"' \

Hier ist, was wir mit diesem Befehl zurückbekommen:

Versuchen wir jetzt, die Daten zu erhalten:

Daten erhalten

curl -x erhalten 'http: // localhost: 9200/linuxHint/hello/1'

Wenn wir diesen Befehl ausführen, erhalten wir die folgende Ausgabe:

Abschluss

In dieser Lektion haben wir uns angesehen, wie wir mit Elasticsearch beginnen können, eine hervorragende Analyse-Engine und bietet auch eine hervorragende Unterstützung für die Free-Time-Free-Text-Suche in Echtzeit.