Elastische Suche

Elasticsearch Reindex in Place

Elasticsearch Reindex in Place
Die Elasticsearch-Indizierung ist eine wichtige Funktion, die es der Engine ermöglicht, schnell und genau zu arbeiten.

Wie Sie jedoch wissen, können Daten, sobald sie einem Index zugeordnet sind, nicht mehr geändert werden. Dazu müssen Sie die Daten mit den gewünschten Änderungen neu indizieren. Dieser Prozess kann zu Ausfallzeiten führen, was insbesondere bei bereits im Umlauf befindlichen Diensten keine gute Praxis ist.

Um dies zu umgehen, können wir Index-Aliasse verwenden, die es uns ermöglichen, nahtlos zwischen Indizes zu wechseln.

So erstellen Sie einen Index?

Der erste Schritt besteht darin, sicherzustellen, dass Sie über einen vorhandenen Index verfügen, in dem Sie die Daten aktualisieren möchten.

Für dieses Tutorial werden wir einen alten und einen neuen Index haben, die als ihre Namen fungieren.

PUT /alter_index/

"die Einstellungen":
"number_of_shards": 1
,
"Aliasnamen":
"benutz mich":
,
„Zuordnungen“:
"Eigenschaften":
"Name":
"Text eingeben"
,
"Ich würde":
"Typ": "Ganzzahl"
,
"bezahlt":
"type": "boolean"



Verwenden Sie für cURL-Benutzer den angehängten Befehl:

curl -XPUT "http://localhost:9200/old_index/" -H 'Content-Type: application/json' -d'  "settings":     "number_of_shards": 1  ,  "aliases":     "use_me" :   ,   "mappings":     "properties":       "name":        "type": "text"      ,      "id":        "type": "integer"      ,   "                                                             ": "boolean"            '

Als nächstes erstellen Sie einen neuen Index, den wir verwenden werden. Kopieren Sie alle Einstellungen und Zuordnungen aus dem alten Index als:

PUT /new_index

"die Einstellungen":
"number_of_shards": 1
,
"Aliasnamen":
"benutz mich":
,
„Zuordnungen“:
"Eigenschaften":
"Name":
"Text eingeben"
,
"Ich würde":
"Typ": "Ganzzahl"
,
"bezahlt":
"Typ": "Objekt"



Hier ist der cURL-Befehl:

curl -XPUT "http://localhost:9200/new_index" -H 'Content-Type: application/json' -d'  "settings":     "number_of_shards": 1  ,  "aliases":     "use_me":   ,   "mappings":     "properties":       "name":        "type": "text"      ,      "id":        "type": "integer"      ,                                                                                   : "Objekt" '

Wenn Sie die Einstellungen und Zuordnungen im neuen Index haben, verwenden Sie die Reindex-API, um die Daten aus dem alten Index in den neuen zu kopieren:

POST _reindex

"Quelle":
"index": "old_index"
,
"Ziel":
"index": "new_index"

Hier ist der cURL-Befehl:

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

Kopieren Sie nun den Alias ​​des alten Index in den neuen mit der _alias-API als:

POST /_aliases

"Aktionen" : [
"add" : "index" : "new_index", "alias" : "use_me"
]

Hier ist der cURL-Befehl:

curl -XPOST "http://localhost:9200/_aliases" -H 'Content-Type: application/json' -d'    "actions" : [        "add" : "index" : "new_index", "alias " : "benutz mich" ]'

Nach Abschluss können Sie den alten Index jetzt entfernen, und die Anwendungen verwenden den neuen Index (aufgrund des Alias) ohne Ausfallzeit.

Fazit

Sobald Sie die in diesem Tutorial besprochenen Konzepte beherrschen, sind Sie in der Lage, Daten von einem alten Index in einen neuen Index neu zu indizieren.

So installieren und spielen Sie Doom unter Linux
Einführung in Doom Die Doom-Serie entstand in den 90er Jahren nach der Veröffentlichung des ursprünglichen Doom. Es war sofort ein Hit und seitdem hat...
Vulkan für Linux-Benutzer
Mit jeder neuen Grafikkartengeneration stoßen Spieleentwickler an die Grenzen der grafischen Wiedergabetreue und kommen dem Fotorealismus einen Schrit...
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...