So erstellen Sie Elasticsearch-Indizes

How Create Elasticsearch Indices



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 Fehlersuche und Nachverfolgung 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 sehen wir uns Elasticsearch an, 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:







  • Verwendung des Terminals, insbesondere cURL
  • Grundkenntnisse in APIs und JSON
  • HTTP-Anfrage stellen

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 – sie gelten als die Basisspeichereinheit in Elasticsearch. 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 die SQL-Welt einbinden.

  • MySQL => Datenbanken => Tabellen => Spalten/Zeilen
  • Elasticsearch => Indizes => Typen => JSON-Dokumente mit Eigenschaften

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 Vorgänge im 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 Verwendung der Kibana-Konsole in Betracht ziehen.

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 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?pretty'

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

{
anerkannt: 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 weniger als 255 Byte betragen. 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 sind Namen, die mit einer . 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 zu erstellenden Index definieren. 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.
  • Einstellungen: Dies definiert die Konfigurationsoptionen für den Index, den Sie erstellen 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 des Namens field1 und des Typs als JSON-Objekt.

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

{
anerkannt: 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 die erforderliche Anzahl von Shard-Kopien für jeden Shard im angegebenen Index vor dem Timeout 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' : {
'Weiterleitung': {
'Zuweisung': {
'enthalten' : {
'_tier_preference' : 'data_content'
}
}
},
'number_of_shards' : '2',
'bereitgestellter_name' : 'single_index_with_body',
'Erstellungsdatum' : '1611045687208',
'number_of_replicas' : '2',
'uuid' : '3TRkO7xmQcSUOOGtb6pXVA',
'Ausführung' : {
'erstellt' : '7100299'
}
}
}
}
}

Abschluss

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 Sie geeignete Namen für die Indizes und Konfigurationseinstellungen erstellen.

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