Elastisk søk

Elasticsearch Reindex alle indekser og kontroller statusen

Elasticsearch Reindex alle indekser og kontroller statusen
Når du jobber med databaser, må du uunngåelig gjøre endringer som å legge til, fjerne og endre data.

Når du endrer data i en Elasticsearch-indeks, kan det føre til nedetid når funksjonaliteten blir fullført og dataene blir indeksert på nytt.

Denne opplæringen vil gi deg en mye bedre måte å oppdatere indekser uten å oppleve noe nedetid med den eksisterende datakilden. Ved hjelp av Elasticsearch reindekserings-API vil vi kopiere data fra en bestemt kilde til en annen.

La oss komme i gang.

MERK: Før vi setter i gang er Reindexing-operasjoner ressurstunge, spesielt på store indekser. For å minimere tiden som kreves for reindeksering, deaktiver number_of_replicas ved å sette verdien til 0 og aktivere dem når prosessen er fullført.

Aktiver _Kildefelt

Reindexing-operasjonen krever at kildefeltet er aktivert på alle dokumentene i kildeindeksen. Merk at kildefeltet ikke er indeksert og ikke kan søkes, men det er nyttig for ulike forespørsler.

Aktiver _Source-feltet ved å legge til en oppføring som vist nedenfor:

PUT index_1

“Mappings”:
"_kilde":
"aktivert": sant


Indexer alle dokumenter på nytt

For å indeksere dokumenter på nytt, må vi spesifisere kilde og destinasjon. Kilde og destinasjon kan være en eksisterende indeks, indeksalias og datastrømmer. Du kan bruke indekser fra den lokale eller en ekstern klynge.

MERK: For at indeksering skal skje vellykket, kan både kilde og destinasjon ikke være like. Du må også konfigurere destinasjonen etter behov før reindeksering fordi den ikke bruker innstillinger fra kilden eller noen tilknyttet mal.

Den generelle syntaksen for reindeksering er som:

POST / _reindex

La oss starte med å lage to indekser. Den første vil være kilden, og den andre vil være destinasjonen.

PUT / kildeindeks

"innstillinger": "number_of_replicas": 0, "number_of_shards": 1,
"mappings": "_source": "enabled": true, "aliases":
"alias_1": ,
"alias_2":
"filter": "term":
"bruker.id ":" kibana "
, "routing": "1"


CURL-kommandoen er:

krøll -XPUT "http: // localhost: 9200 / source_index" -H 'Content-Type: application / json' -d '"settings": "number_of_replicas": 0, "number_of_shards": 1, "mappings" : "_source": "enabled": true, "aliases": "alias_1": , "alias_2": "filter": "term": "user.id ":" kibana "," routing ":" 1 " '

Nå for destinasjonsindeksen (du kan bruke kommandoen ovenfor og endre noen få ting eller bruke den som er gitt nedenfor):

PUT / destinasjonsindeks

"innstillinger": "number_of_replicas": 0, "number_of_shards": 1,
"mappings": "_source": "enabled": true, "aliases":
"alias_3": ,
"alias_4":
"filter": "term":
"bruker.id ":" kibana "
, "routing": "1"


Som alltid kan cURL-brukere bruke kommandoen:

curl -XPUT "http: // localhost: 9200 / destination_index" -H 'Content-Type: application / json' -d '"settings": "number_of_replicas": 0, "number_of_shards": 1, "mappings" : "_source": "enabled": true, "aliases": "alias_3": , "alias_4": "filter": "term": "user.id ":" kibana "," routing ":" 1 " '

Nå har vi indeksene vi vil bruke, og vi kan deretter gå videre til å indeksere dokumentene på nytt.

Vurder forespørselen nedenfor som kopierer dataene fra source_index til destination_index:

POST _reindex

“Kilde”:
"index": "source_index"
,
"dest":
"index": "destination_index"

CURL-kommandoen for dette er:

curl -XPOST "http: // localhost: 9200 / _reindex" -H 'Content-Type: application / json' -d '"source": "index": ".kibana "," dest ": " index ":" destination_index " '

Å utføre denne kommandoen skal gi deg detaljert informasjon om operasjonen som er utført.

MERK: Source_index skal ha data.


"tok": 2836,
"timed_out": false,
"totalt": 13059,
"oppdatert": 0,
"opprettet": 13059,
"slettet": 0,
"batcher": 14,
"version_conflicts": 0,
"noops": 0,
"prøver på nytt":
"bulk": 0,
"søk": 0
,
"throttled_millis": 0,
"requests_per_second": -1.0,
"throttled_until_millis": 0,
"feil": []

Kontrollerer status for nyindeksering

Du kan se statusen for reindekseringsoperasjonene ved å bruke _oppgavene. Tenk for eksempel på forespørselen nedenfor:

FÅ / _oppgaver?detaljert = sann & handlinger = * reindeks & gruppe_by = foreldre

CURL-kommandoen er:

krøll -XGET "http: // localhost: 9200 / _oppgaver?detaljert = sant og handlinger = * reindex & group_by = foreldre "

Det skal gi deg detaljert informasjon om Reindexing-prosessen som vist nedenfor:


"oppgaver":
"FTd_2iXjSXudN_Ua4tZhHg: 51847":
"node": "FTd_2iXjSXudN_Ua4tZhHg",
"id": 51847,
"type": "transport",
"action": "indekser: data / skriv / reindeks",
"status":
"totalt": 13059,
"oppdatert": 9000,
"opprettet": 0,
"slettet": 0,
"batcher": 10,
"version_conflicts": 0,
"noops": 0,
"prøver på nytt":
"bulk": 0,
"søk": 0
,
"throttled_millis": 0,
"requests_per_second": -1.0,
"throttled_until_millis": 0
,
"description": "reindex fra [source_index] til [destination_index] [_ doc]",
"start_time_in_millis": 1611247308063,
"running_time_in_nanos": 2094157836,
"kansellerbar": sant,
"headers":


Konklusjon

Vi har dekket alt du trenger å vite om å bruke Elasticsearch Reindexing API til å kopiere dokumenter fra en indeks (kilde) til en annen (destinasjon). Selv om det ligger mer i Reindexing API, bør denne guiden hjelpe deg med å komme i gang.

Beste spill å spille med håndsporing
Oculus Quest introduserte nylig den gode ideen om håndsporing uten kontrollere. Med et stadig økende antall spill og aktiviteter som utfører støtte en...
Hvordan vise OSD-overlegg i fullskjerm Linux-apper og spill
Å spille fullskjermspill eller bruke apper i distraksjonsfri fullskjermmodus kan avskrekke deg fra relevant systeminformasjon som er synlig i et panel...
Topp 5 spillfangstkort
Vi har alle sett og elsket streaming av spill på YouTube. PewDiePie, Jakesepticye og Markiplier er bare noen av de beste spillerne som har tjent milli...