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.

Installieren Sie den neuesten Dolphin Emulator für Gamecube & Wii unter Linux
Mit dem Dolphin Emulator können Sie Ihre ausgewählten Gamecube- und Wii-Spiele auf Linux-Personalcomputern (PC) spielen. Als frei verfügbarer Open-So...
So verwenden Sie die GameConqueror-Cheat-Engine unter Linux
Der Artikel enthält eine Anleitung zur Verwendung der GameConqueror-Cheat-Engine unter Linux. Viele Benutzer, die Spiele unter Windows spielen, verwen...
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, ...