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.

OpenTTD vs. Simutrans
Das Erstellen einer eigenen Transportsimulation kann Spaß machen, entspannend und äußerst verlockend sein. Deshalb sollten Sie so viele Spiele wie mög...
OpenTTD-Tutorial
OpenTTD ist eines der beliebtesten Wirtschaftssimulationsspiele auf dem Markt. In diesem Spiel musst du ein wunderbares Transportunternehmen aufbauen....
SuperTuxKart für Linux
SuperTuxKart ist ein großartiger Titel, der entwickelt wurde, um Ihnen das Mario Kart-Erlebnis kostenlos auf Ihrem Linux-System zu bieten. Es ist ziem...