Elasticsearch Reindedex vorhanden

Elasticsearch Reindedex vorhanden
Die Elasticsearch -Indexierung ist eine wichtige Funktion, mit der der Engine schnell und genau durchführen kann.

Wie Sie wissen, ist jedoch nicht modifizierbar, sobald die Daten in einen Index zugeordnet werden. Da. Dieser Prozess kann zu Ausfallzeiten führen, was keine sehr gute Praxis ist, insbesondere für einen Dienst, der bereits im Umlauf ist.

Um dies zu umgehen, können wir Index -Aliase verwenden, mit denen wir nahtlos zwischen Indizes wechseln können.

So erstellen Sie einen Index?

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

Für dieses Tutorial haben wir einen alten und neuen Index, der als Namen fungiert.

Put /old_index /

"Einstellungen":
"number_of_shards": 1
,
"Aliase":
"benutz mich":
,
"Mappings":
"Eigenschaften":
"Name":
"Text eingeben"
,
"Ausweis":
"Typ": "Integer"
,
"bezahlt":
"Typ": "Boolean"



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

curl -xput "http: // localhost: 9200/old_index/" -h 'content -type: application/json' -d '"Einstellungen": "number_of_shards": 1, "aliases": "use_me" : , "Mappings": "Eigenschaften": "Name": "Typ": "Text", "ID": "Typ": "Integer", "bezahlt": "Typ ":" boolean " '

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

Put /new_index

"Einstellungen":
"number_of_shards": 1
,
"Aliase":
"benutz mich":
,
"Mappings":
"Eigenschaften":
"Name":
"Text eingeben"
,
"Ausweis":
"Typ": "Integer"
,
"bezahlt":
"Typ": "Objekt"



Hier ist der Befehl curl:

curl -xput "http: // localhost: 9200/new_index" -h 'content -type: application/json' -d '"Einstellungen": "number_of_shards": 1, "aliase": "use_me": , "Mappings": "Eigenschaften": "Name": "Typ": "text", "id": "Typ": "Integer", "bezahlt": "Typ" : "Objekt" '

Verwenden Sie die Reindedex -API, um die Daten aus dem alten Index auf die neue zu kopieren, um die Einstellung und Zuordnungen im neuen Index zu erhalten:

Post _reindex

"Quelle":
"Index": "Old_index"
,
"dest":
"Index": "new_index"

Hier ist der Befehl curl:

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 mit der _alias API als:

Post /_aliase

"Aktionen" : [
"add": "Index": "new_index", "alias": "gebrauch_me"
]

Hier ist der Befehl curl:

curl -xpost "http: // localhost: 9200/_aliases" -h 'content -type: application/json' -d '"Aktionen": ["add": "index": "new_index", "alias", "alias", "alias", "alias " : "benutz mich" ]'

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

Abschluss

Sobald Sie die in diesem Tutorial diskutierten Konzepte beherrschen, sind Sie in der Lage, Daten von einem alten Index zu einem neuen zu richten.