Elasticsearch Reindedex Alle Indizes und überprüfen Sie den Status

Elasticsearch Reindedex Alle Indizes und überprüfen Sie den Status
Wenn Sie mit Datenbanken arbeiten, müssen Sie zwangsläufig Änderungen wie das Hinzufügen, Entfernen und Ändern von Daten vornehmen.

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 setzen

"Mappings":
"_Quelle":
"aktiviert": wahr


Reindex 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 /_reindex

Beginnen wir mit zwei Indizes. Der erste wird die Quelle sein und der andere wird das Ziel sein.

Put /source_index

"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"


Der 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_index

"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"


Wie 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 _reindex

"Quelle":
"Index": "Source_index"
,
"dest":
"Index": "destination_index"

Der 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.


"Nehmen": 2836,
"Timed_out": Falsch,
"Gesamt": 13059,
"aktualisiert": 0,
"erstellt": 13059,
"gelöscht": 0,
"Chargen": 14,
"Version_Conflicts": 0,
"NOOPS": 0,
"Wiederholungen":
"Bulk": 0,
"Suche": 0
,
"Drosseled_millis": 0,
"Requests_per_second": -1.0,
"Drosseled_until_millis": 0,
"Misserfolge": []

Ü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 = Eltern

Der 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:


"Aufgaben" :
"Ftd_2ixjsxudn_ua4tzhhg: 51847":
"Knoten": "ftd_2ixjsxudn_ua4tzhhg",
"ID": 51847,
"Typ": "Transport",
"Aktion": "Indizes: Daten/Schreiben/Reindedex",
"Status":
"Gesamt": 13059,
"aktualisiert": 9000,
"erstellt": 0,
"gelöscht": 0,
"Chargen": 10,
"Version_Conflicts": 0,
"NOOPS": 0,
"Wiederholungen":
"Bulk": 0,
"Suche": 0
,
"Drosseled_millis": 0,
"Requests_per_second": -1.0,
"Drosseled_until_millis": 0
,
"Beschreibung": "Reindedex von [Source_Index] zu [destination_index] [_ doc]",
"start_time_in_millis": 1611247308063,
"running_time_in_nanos": 2094157836,
"Cancellable": Richtig,
"Header":


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.