Elasticsearch Reindex på plass

Elasticsearch Reindex på plass
Elasticsearch -indeksering er en viktig funksjon som lar motoren prestere raskt og nøyaktig.

Som du vet, når data først blir kartlagt i en indeks, er de imidlertid umodifiserbar. For å gjøre dette, må du gjenininde dataene med endringene du trenger. Denne prosessen kan føre til driftsstans, noe som ikke er en veldig god praksis, spesielt for en tjeneste som allerede er i omløp.

For å omgå dette kan vi bruke indeksaliaser, som lar oss bytte mellom indekser sømløst.

Hvordan lage en indeks?

Det første trinnet er å sikre at du har en eksisterende indeks som du ønsker å oppdatere dataene.

For denne opplæringen vil vi ha en gammel og ny indeks som vil fungere som navn.

Put /old_index /

"Innstillinger":
"Number_of_shards": 1
,
"aliaser":
"bruk meg":
,
“Mappings”:
"egenskaper":
"Navn":
"Type": "Tekst"
,
"id":
"Type": "Heltall"
,
"Betalt":
"Type": "Boolean"



For Curl -brukere, bruk den vedlagte kommandoen:

Curl -xput "http: // localhost: 9200/old_index/" -h 'Content -type: applikasjon/json' -d '"innstillinger": "number_of_shards": 1, "aliases": "use_me" : , "Mappings": "Egenskaper": "Navn": "Type": "Text", "Id": "Type": "Heltall", "Betalt": "Type ":" boolean " '

Neste, opprette en ny indeks som vi skal bruke. Kopier alle innstillinger og kartlegginger fra den gamle indeksen som:

Put /new_index

"Innstillinger":
"Number_of_shards": 1
,
"aliaser":
"bruk meg":
,
“Mappings”:
"egenskaper":
"Navn":
"Type": "Tekst"
,
"id":
"Type": "Heltall"
,
"Betalt":
"Type": "Objekt"



Her er Curl -kommandoen:

Curl -xput "http: // localhost: 9200/new_index" -h 'innholdstype: applikasjon/json' -d '"innstillinger": "number_of_shards": 1, "aliases": "use_me": ° : "objekt" '

Når du har innstillingen og kartleggingen i den nye indeksen, bruker du Reindex API til å kopiere dataene fra den gamle indeksen til den nye:

POST _REINDEX

“Kilde”:
"Indeks": "old_index"
,
"dest":
"Indeks": "new_index"

Her er Curl -kommandoen:

Curl -xpost "http:/localhost: 9200/_reindex" -h 'Content -Type: Application/Json' -D '"Source": "Index": "old_index", "dest": "indeks" : "new_index" '

Kopier nå aliaset til den gamle indeksen til den nye ved hjelp av _alias API som:

Post /_aliases

"Handlinger": [
"Legg til": "indeks": "new_index", "alias": "use_me"
]

Her er Curl -kommandoen:

Curl -xpost "http: // localhost: 9200/_aliases" -h 'Content -Type: Application/Json' -D '"Handlinger": ["Add": "Index": "New_Index", "Alias " : "bruk meg" ]'

Når du er fullført, kan du nå fjerne den gamle indeksen, og applikasjonene vil bruke den nye indeksen (på grunn av aliaset) uten driftsstans.

Konklusjon

Når du mestrer konseptene som er diskutert i denne opplæringen, vil du være i stand til å gjengi data fra en gammel indeks til en ny på plass.