Men som du ved, når data først er kortlagt i et indeks, kan de ikke ændres. For at gøre dette skal du indeksere dataene igen med de ændringer, du har brug for. Denne proces kan føre til nedetid, hvilket ikke er særlig god praksis, især for en service, der allerede er i omløb.
For at omgå dette kan vi bruge indeksaliaser, der giver os mulighed for at skifte mellem indekser problemfrit.
Sådan oprettes et indeks?
Det første trin er at sikre, at du har et eksisterende indeks, som du ønsker at opdatere dataene.
Til denne vejledning har vi et gammelt og nyt indeks, der fungerer som deres navne.
PUT / old_index /"indstillinger":
"number_of_shards": 1
,
"aliaser":
"brug mig":
,
“Kortlægninger”:
"ejendomme":
"navn":
"type": "tekst"
,
"id":
"type": "heltal"
,
"betalt":
"type": "boolsk"
For cURL-brugere skal du bruge den vedlagte kommando:
curl -XPUT "http: // localhost: 9200 / old_index /" -H 'Content-Type: application / json' -d '"settings": "number_of_shards": 1, "aliases": "use_me" : , "Mappings": "egenskaber": "navn": "type": "tekst", "id": "type": "heltal", "betalt": "type ":" boolsk " 'Opret derefter et nyt indeks, som vi skal bruge. Kopier alle indstillinger og tilknytninger fra det gamle indeks som:
PUT / new_index"indstillinger":
"number_of_shards": 1
,
"aliaser":
"brug mig":
,
“Kortlægninger”:
"ejendomme":
"navn":
"type": "tekst"
,
"id":
"type": "heltal"
,
"betalt":
"type": "objekt"
Her er cURL-kommandoen:
curl -XPUT "http: // localhost: 9200 / new_index" -H 'Content-Type: application / json' -d '"settings": "number_of_shards": 1, "aliases": "use_me": , "Mappings": "egenskaber": "navn": "type": "tekst", "id": "type": "heltal", "betalt": "type" : "objekt" 'Når du har indstillingen og tilknytningerne i det nye indeks, skal du bruge reindex api til at kopiere dataene fra det gamle indeks til det nye:
POST _reindex“Kilde”:
"index": "old_index"
,
"dest":
"index": "new_index"
Her er cURL-kommandoen:
curl -XPOST "http: / localhost: 9200 / _reindex" -H 'Content-Type: application / json' -d '"source": "index": "old_index", "dest": "index" : "new_index" 'Kopier nu aliaset for det gamle indeks til det nye ved hjælp af _alias api som:
POST / _aliaser"handlinger" : [
"add": "index": "new_index", "alias": "use_me"
]
Her er cURL-kommandoen:
krølle -XPOST "http: // localhost: 9200 / _aliases" -H 'Content-Type: application / json' -d '"actions": ["add": "index": "new_index", "alias " : "brug mig" ]'Når du er færdig, kan du nu fjerne det gamle indeks, og applikationerne bruger det nye indeks (på grund af aliaset) uden nedetid.
Konklusion
Når du mestrer de begreber, der er diskuteret i denne vejledning, vil du være i stand til at indeksere data fra et gammelt indeks til et nyt på plads.