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.

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...
Battle for Wesnoth-Tutorial
The Battle for Wesnoth ist eines der beliebtesten Open-Source-Strategiespiele, die Sie derzeit spielen können. Dieses Spiel befindet sich nicht nur se...
0 A.D. Lernprogramm
Von den vielen Strategiespielen da draußen, 0 A.D. schafft es, sich trotz Open Source als umfassender Titel und sehr tiefgehendes, taktisches Spiel ab...