Ein Elasticsearch -Index oder Indizes ist (sind) eine Datenstruktur, die Zuordnungen für verschiedene Dokumente enthält. In einer relationalen Datenbank könnte sich ein Index auf eine bestimmte Datenbank beziehen.
Ein Elasticsearch -Cluster enthält mehrere Indizes, einschließlich mehrerer Typen, die dann die Dokumente enthalten.
Das Folgende könnte die Elasticsearch -Beziehung mit einer relationalen Datenbank darstellen.
In diesem Leitfaden werden wir verschiedene Methoden erörtern, um einen vorhandenen Elasticsearch -Index umzubenennen.
Methode 1: Wiederindexing
Die erste Methode, die wir bei der Umbenennung eines Index verwenden können, ist die Reindexing -API. Mit dieser API können Sie Dokumente aus einem Quellindex in einen bestimmten Zielindex kopieren.
Die Reindedex -API kopiert jedoch nicht die Konfiguration des Quellindex in das Ziel. Daher müssen wir den Zielindex einrichten und die Konfiguration des Quellindex anwenden, bevor wir Reindedex aufrufen.
Wir können einen vollständigen Redex-Vorgang implementieren, indem wir die unten beschriebenen Schritte befolgen:
Wenn Sie einen vorhandenen Elasticsearch -Index haben, können Sie auf Schritt 2 springen
NOTIZ: In diesem Leitfaden werden wir alle Elasticsearch -Anfragen für Curl zur Verfügung stellen.
Schritt 1: Erstellen Sie einen neuen Index
Erstellen wir einen Index, der als Quelle fungiert. Der Einfachheit halber verwenden wir eine einfache Indexkonfiguration mit den meisten Standardparametern.
Wir werden eine Anfrage an den HTTP -Endpunkt von Elasticsearch geben.
Eine Beispielanforderung zum Erstellen eines Index „Test-Index“ ist unten:
curl -xput "http: // localhost: 9200/test -Index" -h 'content -type: application/json' -d 'Der nächste Schritt besteht darin, den erstellten Index Daten hinzuzufügen. Standardmäßig enthält der Index keine Dokumente.
curl -xget http: // localhost: 9200/_cat/Indices/test -Index \?vUm Daten zum Index hinzuzufügen, führen Sie die Anforderung als: Aus
Die obige Anforderung sollte ein Dokument im Test-Index-Index erstellen.
Wir können überprüfen, ob das Dokument mit der Get -Anforderung an den Indexendpunkt existiert.
curl -xget "http: // locahost: 9200/test -Index/_SEARCH" -H 'Content -Typ: application/json' -d 'Ein Beispielausgang ist Ans gezeigt:
Schritt 2: Quellkonfiguration abrufen
Der nächste Schritt vor der Durchführung eines Reindedex -Vorgangs besteht darin, die Konfiguration des Quellindex zu kopieren.
Wir werden zunächst die Indexeinstellung erhalten. Dazu senden wir eine HTTP -Get -Anfrage an die _Setting -API.
Einstellungen = $ (curl -xget "https: // localhost: 9200/test -Index/_Setings"))Wir speichern die Ausgabe in einer Variablen, die wir mit dem Befehl überprüfen können:
Echo $ Einstellungen | JQDa die Ausgabe im JSON -Format ist, übergeben wir sie an einen JSON -Prozessor wie JQ. Ein Beispielausgang ist wie gezeigt:
Der nächste Schritt besteht darin, die Zuordnung des Index zu erhalten. In diesem Fall senden wir eine Get -Anfrage an den _mapping Endpoint als:
maping = $ (curl -xget "https: // localhost: 9200/test -Index/_mapping"))Überprüfen Sie, ob die Ausgabe in der Variablen gespeichert wird:
Echo $ maping | JQDie Ausgabe ist wie gezeigt:
Kombinieren Sie als Nächst.
Das Folgende ist ein verkürzter Screenshot beider kombinierten Ausgänge (config.JSON).
Schritt 3: Erstellen Sie einen neuen Index
Es ist jetzt an der Zeit, einen neuen Index mit der Konfiguration speichern zu erstellen. Stellen Sie sicher, dass Ihre Konfiguration keine Fehler enthält.
Führen Sie den Befehl aus als:
curl -xput "http: // localhost: 9200/umbenannt-index" -h 'content -type: application/json' -d config.json 'Das Folgende ist der Inhalt in der in diesem Tutorial verwendeten JSON -Datei in der Konfiguration, JSON -Datei.
Bei erfolgreicher Schöpfung sollten Sie anerkannt werden: Richtig, wie gezeigt:
Schritt 4: Reindedex
Nachdem wir nun einen umbenannten Index ähnlich dem Quellindex haben, können wir Daten mit der Reindedex -API von der Quelle zum Ziel kopieren.
Sobald Sie die REINDEX -Anforderung gestellt haben, kopiert Elasticsearch die Daten aus dem angegebenen Quellindex in den Zielindex.
Hier ist ein Beispielausgang:
Schritt 5: Quellindex löschen
Es ist nicht sinnvoll, zwei Indizes mit ähnlichen Konfiguration und Daten zu haben. Daher können wir den Quellindex fallen lassen:
Methode 2: Klon -API
Der zweite und einfachste Weg zum Umbenennen und Index besteht darin, die in Elasticsearch Version 7 eingeführte Klon -API zu verwenden.4 und darüber.
Um die Klon-API zu verwenden, müssen Sie sicherstellen, dass der Quellindex nur schreibgeschützt ist und die Clustergesundheit grün ist.
Wie das Klonen funktioniert
Das Klonen funktioniert wie folgt:
Schritt 1: Stellen Sie den Quellindex auf schreibgeschützte fest
Um den Quellindex auf den schreibgeschützten Modus festzulegen, verwenden wir die API von _Settings und übergeben die Info wie in der folgenden Anforderung gezeigt:
Schritt 2: Klonquellenindex zum Ziel klonen
Um den Test-Index in einen neuen Index namens umbenannt-Cloned-Index zu klonen, können wir die Anforderung wie gezeigt ausführen:
curl -xpost “http: // localhost: 9200/test-Index/_clone/umbenannt angeklagt-Index”
Unter der Annahme, dass die folgenden Anforderungen der Fall sind, sollten Sie über einen umbenannten Index des Quellindex verfügen.
Abschluss
In diesem Leitfaden haben wir mithilfe von zwei Methoden einen Elasticsearch -Index umbenannt.
Vielen Dank für das Lesen!