Wenn Sie Daten in einem Elasticsearch -Index ändern, kann dies zu Ausfallzeiten führen, wenn die Funktionalität abgeschlossen wird und die Daten wieder integriert werden.
Dieses Tutorial bietet Ihnen eine viel bessere Möglichkeit, Indizes zu aktualisieren, ohne mit der vorhandenen Datenquelle Ausfallzeiten zu erleben. Mit der Elasticsearch-Redexing-API werden wir Daten von einer bestimmten Quelle zu einer anderen kopieren.
Lassen Sie uns anfangen.
NOTIZ: Bevor wir anfangen. Deaktivieren Sie number_of_replicas, um den Wert zu minimieren, indem Sie den Wert auf 0 einstellen, und aktivieren Sie sie, sobald der Prozess abgeschlossen ist.
Aktivieren Sie _Source -Feld
Bei der Rebedexing -Operation muss das Quellfeld für alle Dokumente im Quellindex aktiviert werden. Beachten Sie, dass das Quellfeld nicht indiziert ist und nicht durchsucht werden kann, aber für verschiedene Anforderungen nützlich ist.
Aktivieren Sie das Feld _Source, indem Sie wie unten gezeigt einen Eintrag hinzufügen:
Index_1 setzenReindex alle Dokumente
Um Dokumente neu zu rücken, müssen wir Quelle und Ziel angeben. Quelle und Ziel können ein vorhandener Index-, Index -Alias und Datenströme sein. Sie können Indizes vom lokalen oder Remote -Cluster verwenden.
NOTIZ: Damit die Indizierung erfolgreich auftritt, kann sowohl Quelle als auch Ziel nicht ähnlich sein. Sie müssen das Ziel auch vor der Wiederherstellung konfigurieren, da es keine Einstellungen aus der Quelle oder einer zugehörigen Vorlage anwendet.
Die allgemeine Syntax für die Reindexing lautet wie:
Post /_reindexBeginnen wir mit zwei Indizes. Der erste wird die Quelle sein und der andere wird das Ziel sein.
Put /source_indexDer Befehl curl lautet:
curl -xput "http: // localhost: 9200/source_index" -h 'content -type: application/json' -d '"Einstellungen": "number_of_replicas": 0, "number_of_shards": 1, "Mappings" : "_source": "enabled": true, "aliase": "alias_1": , "alias_2": "filter": "Term": "Benutzer.ID ":" Kibana "," Routing ":" 1 " 'Für den Zielindex (Sie können den obigen Befehl verwenden und ein paar Dinge ändern oder die unten angegebene verwenden):
Put /destination_indexWie immer können Curl -Benutzer den Befehl verwenden:
curl -xput "http: // localhost: 9200/destination_index" -h 'content -type: application/json' -d '"Einstellungen": "number_of_replicas": 0, "number_of_shards": 1, "Mappings" : "_source": "enabled": true, "aliase": "alias_3": , "alias_4": "filter": "Term": "Benutzer.ID ":" Kibana "," Routing ":" 1 " 'Jetzt haben wir die Indizes, die wir verwenden möchten. Wir können dann weitermachen, um die Dokumente neu zu rücken.
Betrachten Sie die folgende Anforderung, die die Daten von Source_Index zu destination_index kopiert:
Post _reindexDer Curl -Befehl dafür ist:
curl -xpost "http: // localhost: 9200/_reindex" -h 'content -type: application/json' -d '"source": "index": ".kibana "," dest ": " index ":" destination_index " 'Durch die Ausführung dieses Befehls sollten Sie detaillierte Informationen über die durchgeführte Operation erhalten.
NOTIZ: Das Source_Index sollte Daten haben.
Überprüfen Sie den Status des Reindedexing
Sie können den Status der Reindedexing -Operationen ansehen, indem Sie einfach die _Tasks verwenden. Betrachten Sie beispielsweise die folgende Anfrage:
Get /_tasks?detailled = true & actions =*reindex & gruppe_by = ElternDer Befehl curl lautet:
curl -xget "http: // localhost: 9200/_tasks?detailled = true & actions =*reindex & gruppe_by = Eltern "Dadurch sollten Sie detaillierte Informationen über den unten gezeigten Reindedexing -Prozess geben:
Abschluss
Wir haben alles behandelt, was Sie über die Verwendung von Elasticsearch -Rebedexing -API wissen müssen, um Dokumente von einem Index (Quelle) in ein anderes (Ziel) zu kopieren, um Dokumente zu kopieren (Ziel). Obwohl die Rebedexing -API mehr hat, sollte dieser Leitfaden Ihnen helfen, loszulegen.