NOTIZ: Um Änderungen an einem Index durchzuführen, stellen Sie sicher.
Grundnutzung
Um einen Feldtyp zu ändern, senden Sie eine Put -Anforderung an die _mapping -API, gefolgt von der Anforderungsbehörde. Die Anforderungsstelle enthält den Eigenschaftenparameter und die Zuordnung des Zielfelds. Stellen Sie beim Erstellen eines neuen Feldes sicher, dass Sie den Feldname, die Typ- und Zuordnungsparameter einfügen.
Beispielsweise ändert die folgende Anforderung den Feldtyp von Ganzzahl nach lang.
Put /my-Index /_mappingNach erfolgreicher Fertigstellung sollten Sie eine Ausgabe als:
Neuindexing-Methode
In den meisten Fällen hindert Elasticsearch Sie daran, den Feldtyp eines vorhandenen Index zu aktualisieren. Dies könnte dazu führen, dass die vorliegenden Daten ungültig werden und Fehler im Index verursachen.
Wenn Sie den Typ eines vorhandenen Feldes noch aktualisieren möchten, können Sie dies in wenigen einfachen Schritten tun.
Mit dieser Methode können Sie die minimale Ausfallzeit für Ihren Index reduzieren.
Erstellen eines alten Index
Beginnen wir mit dem Erstellen eines Index mit dem falschen Feldtyp.
Put /Change-MeIm obigen Beispiel haben wir einen einfachen Index mit den beiden Feldern: ID und Benutzername. Die Feldtypen sind ganzzahl und Text.
Nehmen wir an, das Feld enthält Daten, wie in der folgenden Abfrage gezeigt:
Post /Change-me /_doc
Die beiden oben genannten Abfragen erstellen ein Dokument mit den in der Anforderungsbehörde angegebenen Daten.
Stellen Sie sicher, dass die Daten vorhanden sind:
Get /ändere me /_search?hübschWir sollten die beiden Datensätze wie gezeigt sehen:
Erstellen Sie einen neuen Index
Angenommen, wir möchten das ID -Feld von einer Ganzzahl in ein Schlüsselwort ändern. Wir werden zunächst einen neuen Index mit dem Typ als Keywords erstellen.
Put /Change-Me-ReindexIn der obigen Anforderung erstellen wir einen neuen Index und setzen den ID -Typ auf ein Schlüsselwort.
Index die alten Daten erneut
Der nächste Schritt besteht darin, die Daten aus dem alten Index zum neuen zu index. Die Anfrage dafür ist unten:
Post /_reindexDie obige Anfrage kopiert die Dokumente aus dem alten Index auf den neuen, wobei der Feldtyp von einer Ganzzahl zu einem Schlüsselwort ändert.
Ausgabe aus der obigen Abfrage:
Löschen Sie den alten Index
Nachdem wir einen aktualisierten Index mit der richtigen Zuordnung haben, ist es Zeit, den alten Index zu entfernen. Wir können dies tun, indem wir eine Löschanforderung an den Index senden als:
Löschen /wechseln-meNach erfolgreicher Entfernung sollten Sie eine Ausgabe als:
Erstellen Sie Index alias
Wenn Sie Anwendungen mit dem alten Index hätten, können sie nicht mehr funktionieren, da dies nicht mehr existiert.
Wir können dies lösen, indem wir einen Alias für den neuen Index mit dem Namen des alten Index erstellen.
Put/Change-Me-Reindex/_alias/Change-MeDie obige Anfrage sollte einen Alias für den neuen Index erstellen.
Abschluss
In diesem Leitfaden haben Sie festgestellt, wie Sie den Typ eines vorhandenen Feldes in einem Elasticsearch -Index ändern können.