Elastische Suche

Elasticsearch indiziert alle Indizes neu und prüft den Status

Elasticsearch indiziert alle Indizes neu und prüft den Status
Wenn Sie mit Datenbanken arbeiten, müssen Sie unweigerlich Ä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 ist und die Daten neu indiziert werden.

Dieses Tutorial bietet Ihnen eine viel bessere Möglichkeit, Indizes zu aktualisieren, ohne dass es zu Ausfallzeiten mit der vorhandenen Datenquelle kommt. Mit der Elasticsearch Re-Indizierungs-API kopieren wir Daten von einer bestimmten Quelle in eine andere.

Lass uns loslegen.

HINWEIS: Bevor wir beginnen, sind Neuindizierungsvorgänge ressourcenintensiv, insbesondere bei großen Indizes. Um die für die Neuindizierung erforderliche Zeit zu minimieren, deaktivieren Sie number_of_replicas, indem Sie den Wert auf 0 setzen, und aktivieren Sie sie, sobald der Vorgang abgeschlossen ist.

_Quellfeld aktivieren

Für die Neuindizierung muss das Quellfeld für alle Dokumente im Quellindex aktiviert sein. Beachten Sie, dass das Quellfeld nicht indiziert ist und nicht durchsucht werden kann, aber für verschiedene Anfragen nützlich ist.

Aktivieren Sie das Feld _Source, indem Sie wie unten gezeigt einen Eintrag hinzufügen:

PUT-Index_1

„Zuordnungen“:
"_Quelle":
"aktiviert": wahr


Alle Dokumente neu indizieren

Um Dokumente neu zu indizieren, müssen wir Quelle und Ziel angeben. Quelle und Ziel können ein vorhandener Index, ein Indexalias und Datenströme sein. Sie können Indizes aus dem lokalen oder einem Remote-Cluster verwenden.

HINWEIS: Damit die Indizierung erfolgreich durchgeführt werden kann, dürfen Quelle und Ziel nicht ähnlich sein. Sie müssen das Ziel auch vor der Neuindizierung nach Bedarf konfigurieren, da es keine Einstellungen aus der Quelle oder einer zugehörigen Vorlage übernimmt.

Die allgemeine Syntax für die Neuindizierung lautet wie folgt:

POST /_reindex

Beginnen wir mit der Erstellung von zwei Indizes. Der erste ist die Quelle und der andere das Ziel.

PUT /source_index

"settings": "number_of_replicas": 0, "number_of_shards": 1,
"mappings": "_source": "enabled": true,"aliases":
"alias_1": ,
"alias_2":
"filter": "term":
"Benutzer.id": "kibana"
,"Routing": "1"


Der cURL-Befehl lautet:

curl -XPUT "http://localhost:9200/source_index" -H 'Content-Type: application/json' -d'  "settings": "number_of_replicas": 0, "number_of_shards": 1,  "mappings" : "_source": "enabled": true,"aliases":     "alias_1": ,    "alias_2":       "filter": "term":         "user.id": "kibana"      ,"routing": "1"      '

Nun zum Zielindex (Sie können den obigen Befehl verwenden und ein paar Dinge ändern oder den unten angegebenen verwenden):

PUT /destination_index

"settings": "number_of_replicas": 0, "number_of_shards": 1,
"mappings": "_source": "enabled": true,"aliases":
"alias_3": ,
"alias_4":
"filter": "term":
"Benutzer.id": "kibana"
,"Routing": "1"


cURL-Benutzer können wie immer den Befehl verwenden:

curl -XPUT "http://localhost:9200/destination_index" -H 'Content-Type: application/json' -d'  "settings": "number_of_replicas": 0, "number_of_shards": 1,  "mappings" : "_source": "enabled": true,"aliases":     "alias_3": ,    "alias_4":       "filter": "term":         "user.id": "kibana"      ,"routing": "1"      '

Jetzt haben wir die Indizes, die wir verwenden möchten, und können dann mit der Neuindizierung der Dokumente fortfahren.

Betrachten Sie die folgende Anfrage, die die Daten von source_index nach destination_index kopiert:

POST _reindex

"Quelle":
"index": "source_index"
,
"Ziel":
"index": "destination_index"

Der cURL-Befehl dafür lautet:

curl -XPOST "http://localhost:9200/_reindex" -H 'Content-Type: application/json' -d'  "source":     "index": ".kibana"  ,  "dest":     "index": "destination_index"  '

Wenn Sie diesen Befehl ausführen, sollten Sie detaillierte Informationen über die ausgeführte Operation erhalten.

HINWEIS: Der source_index sollte Daten enthalten.


"genommen" : 2836,
"timed_out" : false,
"gesamt" : 13059,
"aktualisiert" : 0,
"erstellt" : 13059,
"gelöscht" : 0,
"Chargen" : 14,
"version_conflicts" : 0,
"noops" : 0,
"Wiederholungen":
"Masse" : 0,
"suchen" : 0
,
"throttled_millis" : 0,
"requests_per_second" : -1.0,
"throttled_until_millis" : 0,
"Fehler": [ ]

Überprüfen des Neuindizierungsstatus

Sie können den Status der Neuindizierungsvorgänge anzeigen, indem Sie einfach die _tasks. Betrachten Sie zum Beispiel die folgende Anfrage:

GET /_tasks?detail=true&actions=*reindex&group_by=parents

Der cURL-Befehl lautet:

curl -XGET "http://localhost:9200/_tasks?detail=true&actions=*reindex&group_by=parents"

Das sollte Ihnen detaillierte Informationen über den Neuindizierungsprozess geben, wie unten gezeigt:


"Aufgaben" :
"FTd_2iXjSXudN_Ua4tZhHg:51847":
"Knoten" : "FTd_2iXjSXudN_Ua4tZhHg",
"id" : 51847,
"Typ" : "Transport",
"action" : "indices:data/write/reindex",
"status":
"gesamt" : 13059,
"aktualisiert" : 9000,
"erstellt" : 0,
"gelöscht" : 0,
"Chargen" : 10,
"version_conflicts" : 0,
"noops" : 0,
"Wiederholungen":
"Masse" : 0,
"suchen" : 0
,
"throttled_millis" : 0,
"requests_per_second" : -1.0,
"throttled_until_millis" : 0
,
"description" : "reindex from [source_index] to [destination_index][_doc]",
"start_time_in_millis" : 1611247308063,
"running_time_in_nanos" : 2094157836,
"kündbar" : wahr,
"Kopfzeilen" :


Fazit

Wir haben alles abgedeckt, was Sie über die Verwendung der Elasticsearch Reindexing API wissen müssen, um Dokumente von einem Index (Quelle) in einen anderen (Ziel) zu kopieren. Obwohl die Reindexing API noch mehr bietet, sollte Ihnen dieser Leitfaden den Einstieg erleichtern.

Schlacht um Wesnoth 1.13.6 Entwicklung veröffentlicht
Schlacht um Wesnoth 1.13.6, das letzten Monat veröffentlicht wurde, ist die sechste Entwicklungsversion im 1.13.x-Serie und bietet eine Reihe von Verb...
So installieren Sie League of Legends auf Ubuntu 14.04
Wenn Sie ein Fan von League of Legends sind, dann ist dies eine Gelegenheit für Sie, League of Legends zu testen. Beachten Sie, dass LOL von PlayOnLin...
Installieren Sie das neueste OpenRA-Strategiespiel auf Ubuntu Linux
OpenRA ist eine Libre/Free Real Time Strategy Game Engine, die die frühen Westwood-Spiele wie den Klassiker Command & Conquer: Red Alert Red nachbilde...