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.

Beste Spielkonsolen-Emulatoren für Linux
Dieser Artikel listet beliebte Spielekonsolen-Emulationssoftware auf, die für Linux verfügbar ist. Emulation ist eine Softwarekompatibilitätsschicht, ...
Beste Linux-Distributionen für Gaming im Jahr 2021
Das Linux-Betriebssystem hat sich weit von seinem ursprünglichen, einfachen, serverbasierten Aussehen entfernt. Dieses Betriebssystem hat sich in den ...
So erfassen und streamen Sie Ihre Gaming-Sitzung unter Linux
In der Vergangenheit galt das Spielen von Spielen nur als Hobby, aber mit der Zeit verzeichnete die Spieleindustrie ein enormes Wachstum in Bezug auf ...