Elastisk søgning

Elasticsearch Reindex på plads

Elasticsearch Reindex på plads
Elasticsearch-indeksering er en vigtig funktion, der gør det muligt for motoren at udføre hurtigt og præcist.

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.

Gratis og open source-spilmotorer til udvikling af Linux-spil
Denne artikel dækker en liste over gratis og open source-spilmotorer, der kan bruges til at udvikle 2D- og 3D-spil på Linux. Der er mange sådanne spil...
Shadow of the Tomb Raider til Linux-vejledning
Shadow of the Tomb Raider er den tolvte tilføjelse til Tomb Raider-serien - en action-adventure-spilfranchise oprettet af Eidos Montreal. Spillet blev...
Sådan styrkes FPS i Linux?
FPS står for Billeder i sekundet. FPS's opgave er at måle billedhastigheden i videoafspilninger eller spiloptræden. I enkle ord betegnes antallet af u...