Dieses Tutorial wurde für ElasticSearch Version 5.2 erstellt. Version 5 bietet eine Reihe wichtiger Änderungen in Bezug auf Abfrage-DSL und Mapping.
Wenn Sie noch Version 2.x verwenden, schauen Sie sich bitte den v2-Zweig dieses Repositorys an .
Ich habe eine Reihe von Beispielen zusammengestellt, um die Funktionen und die Leistungsfähigkeit von ElasticSearch zu veranschaulichen. Viele der Informationen basieren auf „ElasticSearch, The Definitive Guide“.
Laden Sie ElasticSearch & Kibana hier herunter und befolgen Sie dann diese einfachen Schritte:
./bin/elasticsearch
aus./bin/kibana
ausÜbung 1 ist sehr einfach und das Ziel besteht darin, sich mit der ElasticSearch-RESTFul-Schnittstelle vertraut zu machen.
Themen:
Belastungsübung 1
In Übung 2 werden wir viele Daten indizieren. Um die Leistung zu verbessern, führen wir dies in großen Mengen durch.
Diese Daten enthalten Informationen aus dem Combell-Blog. Ich habe die folgenden Informationen indiziert:
Diese Daten werden in den anderen Übungen verwendet.
Laden Sie die Blog-Daten in großen Mengen
In Übung 3 führen wir einige grundlegende Abfragen mit der ElasticSearch-Abfrage-DSL durch. Das DSL ist JSON-basiert und die Abfragen sind Volltextsuchen.
Hier sind einige Suchanfragen, die wir durchführen:
Belastungsübung 3
In Übung 4 konzentrieren wir uns auf die Analyse von Volltext und menschlicher Sprache. Wir ignorieren die Datenbankfunktionen von ElasticSearch, werfen etwas Text darauf und sehen, wie die Daten tokenisiert werden.
Abhängig vom verwendeten Analysegerät tokenisiert und speichert ElasticSearch die Daten auf unterschiedliche Weise. Keine Sorge, die Originaldaten bleiben in der Quelle des Dokuments, es ist der invertierte Index, der sich ändert.
Belastungsübung 4
In Übung 5 dreht sich alles um das Schema eines Index. ElasticSearch wird als schemalos vermarktet. Tatsächlich errät ElasticSearch das Schema für Sie.
Ich zeige Ihnen Beispiele, bei denen es erfolgreich rät, und Beispiele, bei denen es nicht gelingt.
Belastungsübung 5
Um zu vermeiden, dass ElasticSearch das Schema falsch errät, ist eine explizite Zuordnung eine gute Idee. In Übung 6 wird das richtige Mapping für unser Blog-Beispiel eingerichtet und die Daten erneut eingefügt.
Ganzzahlen und Zeichenfolgen werden entsprechend definiert und das Datum hat das richtige Format.
Die explizite Zuordnung wird in Übung 7 verwendet.
Belastungsübung 6
Die beiden Suchvorgänge in Übung 5, die fehlgeschlagen sind, werden nun erneut ausgeführt. Dank der expliziten Zuordnung ist die Ausgabe korrekt.
Belastungsübung 7
In Übung 8 definieren wir eine weitere Zuordnung in unserem Blog-Index. Diese Zuordnung behandelt nur das Feld „Titel“ als Volltext. Der Rest der Zeichenfolgen wird nicht analysiert und tokenisiert. Sie werden „wie sie sind“ gespeichert.
Diese Daten werden in Übung 9 verwendet.
Belastungsübung 8
In Übung 9 zeige ich Ihnen den Unterschied zwischen Volltextsuchen mit Abfragen und exakten Wertübereinstimmungen mit Abfragen im Filtermodus.
Die Zuordnung, die in Übung 8 durchgeführt wurde, hat dafür gesorgt, dass es jetzt ein „Schlüsselwort“ -Feld für die Titeleigenschaft gibt. Dies bedeutet, dass Abfragen nach „title“ als Volltextsuchen behandelt werden und boolesche Filter nach dem regulären Feld „title.keyword“ als exakte Wertübereinstimmungen behandelt werden.
In einem der Beispiele zeige ich Ihnen auch, wie Sie mehrere Abfragen und Filter kombinieren.
Das machen wir in dieser Übung:
Belastungsübung 9
Wir werden die Daten noch einmal neu zuordnen. Dieses Mal behandeln wir die Eigenschaft „title“ als analysiertes Feld. Standardmäßig wird der „Standard“ -Analysator verwendet. Da unsere Daten sowohl auf Niederländisch als auch auf Englisch vorliegen, habe ich zwei Felder hinzugefügt:
Dies ist die endgültige Version des Mappings. Die anderen Beispiele verwenden diese Zuordnung und Daten.
Belastungsübung 10
In Übung 11 geht es um die Analyse von Texten anhand der Sprache. Übung 4 war ein Hinweis zur Datenanalyse. Jetzt führen wir tatsächlich Suchvorgänge durch, die auf der Sprachanalyse basieren.
Belastungsübung 11
In Übung 12 erstellen wir einen neuen „Städte“ -Index, der alle Städte enthält, die in der belgischen Provinz West-Vlaanderen liegen. Der Index speichert den Namen der Stadt und ihre Geokoordinaten.
Die explizite Zuordnung und die Daten werden in anderen Übungen verwendet.
Belastungsübung 12
In der vorherigen Übung haben wir einen neuen Index erstellt und einige Geodaten indiziert. In Übung 13 werden wir tatsächlich Suchvorgänge für diese Daten durchführen.
Es werden 2 Abfragen vorgestellt:
Belastungsübung 13
In Übung 14 laden wir Daten in einen weiteren Index. Dieser Index heißt „Autos“ und enthält Informationen zu Autoverkäufen. Bei jeder Transaktion werden die folgenden Informationen erfasst:
Diese Informationen werden in Übung 15 verwendet.
Belastungsübung 14
Aggregationen sind eine sehr leistungsstarke Funktion von ElasticSearch. Es ist im Grunde wie „Gruppieren nach“ in SQL, aber viel leistungsfähiger. Aggregationen sind der Grund, warum ElasticSearch in der Big-Data- und Data-Science-Community so beliebt ist.
Dies sind die Aggregationen, die wir in dieser Übung ausführen:
Belastungsübung 15