Elastisk søk

Elasticsearch Reindex på plass

Elasticsearch Reindex på plass
Elasticsearch indeksering er en viktig funksjon som gjør at motoren kan prestere raskt og nøyaktig.

Imidlertid, som du vet, når data blir kartlagt til en indeks, kan de ikke endres. For å gjøre dette, må du reindeksere dataene med de endringene du trenger. Denne prosessen kan føre til nedetid, noe som ikke er 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 navnene deres.

PUT / old_index /

"innstillinger":
"number_of_shards": 1
,
"aliaser":
"bruk meg":
,
“Mappings”:
"eiendommer":
"Navn":
"type": "tekst"
,
"id":
"type": "heltall"
,
"betalt":
"type": "boolsk"



For cURL-brukere, bruk den vedlagte kommandoen:

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", "paid": "type ":" boolean " '

Deretter oppretter du 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”:
"eiendommer":
"Navn":
"type": "tekst"
,
"id":
"type": "heltall"
,
"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": "properties": "name": "type": "text", "id": "type": "integer", "paid": "type" : "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”:
"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 nå aliaset til den gamle indeksen til den nye ved hjelp av _alias api som:

POST / _aliaser

"handlinger": [
"add": "index": "new_index", "alias": "use_me"
]

Her er cURL-kommandoen:

curl -XPOST "http: // localhost: 9200 / _aliases" -H 'Content-Type: application / json' -d '"actions": ["add": "index": "new_index", "alias " : "bruk meg" ]'

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

Konklusjon

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

Beste Gamepad Mapping Apps for Linux
Hvis du liker å spille spill på Linux med en gamepad i stedet for et vanlig tastatur- og musinngangssystem, er det noen nyttige apper for deg. Mange P...
Nyttige verktøy for Linux-spillere
Hvis du liker å spille spill på Linux, er sjansen stor for at du har brukt apper og verktøy som Wine, Lutris og OBS Studio for å forbedre spilloppleve...
HD Remastered Games for Linux som aldri hadde en Linux-utgave tidligere
Mange spillutviklere og utgivere kommer med HD-remaster av gamle spill for å forlenge franchisetiden, vennligst fans som ber om kompatibilitet med mod...