Elastische Suche

So erstellen Sie Elasticsearch-Indizes

So erstellen Sie Elasticsearch-Indizes
Elasticsearch ist ein Teil des beliebten ELK-Stacks, der für Log-Analysen und -Suchen verwendet wird. Anwendungen und Systeme protokollieren ständig Daten, die bei der Fehlerbehebung und Verfolgung von Problemen sehr nützlich sein können. Mit dem ELK-Stack haben Sie die besten Werkzeuge, um diese Aufgaben schnell und einfach zu erledigen.

In diesem kurzen Tutorial werden wir uns Elasticsearch ansehen, insbesondere wie man Indizes in der Elasticsearch-Engine erstellt. Obwohl Sie keine umfassenden Kenntnisse über den ELK-Stack benötigen, um diesem Tutorial zu folgen, können grundlegende Kenntnisse der folgenden Themen von Vorteil sein:

HINWEIS: In diesem Tutorial wird außerdem davon ausgegangen, dass Elasticsearch auf Ihrem System installiert ist und ausgeführt wird.

Was sind Elasticsearch-Indizes??

Ohne die Dinge zu vereinfachen oder zu komplizieren, ist ein Elasticsearch-Index eine Sammlung verwandter JSON-Dokumente.

Wie in einem früheren Beitrag erwähnt, handelt es sich bei Elasticsearch-Indizes um JSON-Objekte, die als Basisspeichereinheit in Elasticsearch angesehen werden. Diese zugehörigen JSON-Dokumente werden in einer einzigen Einheit gespeichert, die einen Index bildet. Stellen Sie sich Elasticsearch-Dokumente als Tabellen in einer relationalen Datenbank vor.

Lassen Sie uns einen Elasticsearch-Index als Datenbank in der SQL-Welt in Beziehung setzen.

So erstellen Sie einen Elasticsearch-Index

Elasticsearch verwendet eine leistungsstarke und intuitive REST-API, um seine Dienste bereitzustellen. Mit dieser Funktionalität können Sie HTTP-Anforderungen verwenden, um Operationen auf dem Elasticsearch-Cluster auszuführen. Daher verwenden wir die Create-Index-API, um einen neuen Index zu erstellen.

Für dieses Handbuch verwenden wir cURL, um die Anfragen zu senden und die Integrität und Benutzerfreundlichkeit für alle Benutzer zu wahren. Wenn Sie jedoch bei cURL auf Fehler stoßen, sollten Sie die Kibana-Konsole verwenden.

Die Syntax zum Erstellen eines neuen Index im Elasticsearch-Cluster lautet:

STELLEN /

Um einen Index zu erstellen, müssen Sie lediglich den Indexnamen ohne weitere Parameter übergeben, wodurch ein Index mit den Standardeinstellungen erstellt wird.

Sie können auch verschiedene Merkmale des Index angeben, z. B. im Indexkörper:

  • Die Einstellungen für den Index
  • Index-Aliasse
  • Zuordnungen für Indexfelder

Der Indexname ist ein erforderlicher Parameter; Andernfalls erhalten Sie einen Fehler für die URIL (/)

curl -X PUT "localhost:9200"
"error":"Falsche HTTP-Methode für uri [/] und Methode [PUT], erlaubt: [DELETE, HEAD, GET]","status":405

Um einen neuen Index mit dem Namen single_index zu erstellen, übergeben wir die Anfrage:

PUT /single_index

Verwenden Sie für cURL den Befehl:

curl -X PUT "localhost:9200/single_index?ziemlich"

Dieser Befehl sollte HTTP-Status 200 OK und eine Meldung mit quittiert: true als:


„bestätigt“: wahr,
"shards_acknowledged" : wahr,
"index" : "single_index"

Die obige Anfrage erstellt einen Index single_index mit Standardeinstellungen, da wir keine Konfigurationen angegeben haben.

Regeln für die Indexbenennung

Beim Erstellen von Namen für Elasticsearch-Indizes müssen Sie die folgenden Benennungsstandards einhalten:

  1. Der Indexname darf nur in Kleinbuchstaben angegeben werden.
  2. Die Indexnamen dürfen nicht mit einem Bindestrich (-), einem Unterstrich (_) oder einem Zusatzzeichen (+) beginnen
  3. Die Namen können nicht sein . oder…
  4. Indexnamen dürfen keine Sonderzeichen enthalten wie: \, /, *, ?, “, <, >, |,"(Leerzeichen), ,, #
  5. Die Länge der Indexnamen muss kleiner als 255 Byte sein. Multi-Byte-Zeichen zählen zur Gesamtlänge des Indexnamens. Wenn ein einzelnes Zeichen beispielsweise 8 Byte lang ist, beträgt die verbleibende Gesamtlänge des Namens 255 - 8
  6. In der neuesten Version von Elasticsearch Namen, die mit a . beginnen . sind für versteckte Indizes und interne Indizes reserviert, die von Elasticsearch-Plugins verwendet werden.

So erstellen Sie einen Indexkörper

Wenn Sie den PUT-Request verwenden, um einen Index zu erstellen, können Sie verschiedene Argumente übergeben, die die Einstellungen für den Index definieren, den Sie erstellen möchten. Zu den Werten, die Sie im Textkörper angeben können, gehören:

  • Aliase: Gibt Aliasnamen für den Index an, den Sie erstellen möchten; dieser Parameter ist optional.
  • Die Einstellungen: Dies definiert die Konfigurationsoptionen für den Index, den Sie erstellt haben möchten. Wenn Sie keine Parameter angeben, wird der Index mit Standardkonfigurationen erstellt.
  • Zuordnungen: Dies definiert die Zuordnung für Felder im Index. Zu den Spezifikationen, die Sie in Mappings aufnehmen können, gehören:
    • Der Feldname
    • Der Datentyp
    • Der Mapping-Parameter

Ein Beispiel für das Erstellen eines Index mit Body-Konfigurationen finden Sie in der folgenden Anfrage:

PUT /single_index_with_body

"die Einstellungen":
"number_of_shards": 2,
"number_of_replicas": 2
,
„Zuordnungen“:
"Eigenschaften":
"field1": "type": "object"


Für eine cURL-äquivalente Anfrage:

curl -XPUT "http://localhost:9200/single_index_with_body" -H 'Content-Type: application/json' -d' "settings": "number_of_shards": 2, "number_of_replicas": 2 , "mappings" : "Eigenschaften": "Feld1": "Typ": "Objekt" '

Die obige Anfrage erstellt einen neuen Index mit dem Namen single_index_with_body mit 2 Nummern von Shards und 2 Replikaten. Es erstellt auch eine Zuordnung mit einem Feld mit dem Namen field1 und dem Typ als JSON-Objekt.

Sobald Sie die Anfrage gesendet haben, erhalten Sie eine Antwort mit dem Status der Anfrage wie folgt:


„bestätigt“: wahr,
"shards_acknowledged" : wahr,
"index" : "single_index_with_body"

„Acknowledged“ zeigt an, ob der Index erfolgreich im Cluster erstellt wurde, während „shards_acknowledged“ anzeigt, ob für jeden Shard im angegebenen Index vor dem Timeout die erforderliche Anzahl von Shard-Kopien gestartet wurde.

So zeigen Sie den Elasticsearch-Index an

Um die Informationen zu dem von Ihnen erstellten Index anzuzeigen, verwenden Sie eine ähnliche Anforderung wie beim Erstellen eines Index, verwenden Sie jedoch die HTTP-Methode anstelle von PUT wie folgt:

GET /single_index_with_body

Für cURL,

curl -XGET „http://localhost:9200/single_index_with_body“

Dieser Befehl gibt Ihnen detaillierte Informationen über den angeforderten Index als:


"single_index_with_body":
"Alias" : ,
"Zuordnungen":
"Eigenschaften" :
"feld1":
"Typ" : "Objekt"


,
"die Einstellungen" :
"Index" :
"Routing" :
"Zuweisung" :
"einschließen":
"_tier_preference" : "data_content"


,
"number_of_shards" : "2",
"provided_name" : "single_index_with_body",
"Erstellungsdatum": "1611045687208",
"Anzahl_der_Replikate" : "2",
"uuid" : "3TRkO7xmQcSUOOGtb6pXVA",
"Ausführung" :
"erstellt" : "7100299"




Fazit

In diesem Leitfaden wurde erläutert, wie Sie mit Elasticsearch arbeiten, um eine Index-API zum Erstellen neuer Indizes zu erstellen. Wir haben auch besprochen, wie man geeignete Namen für die Indizes und Konfigurationseinstellungen erstellt.

Mithilfe dieses Handbuchs können Sie jetzt Indizes mithilfe der Elasticsearch-API erstellen und anzeigen.

SuperTuxKart für Linux
SuperTuxKart ist ein großartiger Titel, der entwickelt wurde, um Ihnen das Mario Kart-Erlebnis kostenlos auf Ihrem Linux-System zu bieten. Es ist ziem...
Battle for Wesnoth-Tutorial
The Battle for Wesnoth ist eines der beliebtesten Open-Source-Strategiespiele, die Sie derzeit spielen können. Dieses Spiel befindet sich nicht nur se...
0 A.D. Lernprogramm
Von den vielen Strategiespielen da draußen, 0 A.D. schafft es, sich trotz Open Source als umfassender Titel und sehr tiefgehendes, taktisches Spiel ab...