Elastično iskanje

Elasticsearch ponovno indeksira vse indekse in preveri stanje

Elasticsearch ponovno indeksira vse indekse in preveri stanje
Ko delate z bazami podatkov, boste neizogibno morali narediti spremembe, kot je dodajanje, odstranjevanje in spreminjanje podatkov.

Ko spreminjate podatke v indeksu Elasticsearch, lahko pride do izpada, ko se funkcionalnost dokonča in podatki znova indeksirajo.

Ta vadnica vam bo dala veliko boljši način posodabljanja indeksov, ne da bi pri tem obstajali izpadi z obstoječim virom podatkov. Z API-jem za ponovno indeksiranje Elasticsearch bomo podatke iz določenega vira kopirali v drugega.

Začnimo.

OPOMBA: Preden začnemo, so operacije ponovnega indeksiranja zelo zahtevne, zlasti pri velikih indeksih. Če želite minimizirati čas, potreben za ponovno indeksiranje, onemogočite number_of_replicas tako, da nastavite vrednost na 0 in jih omogočite, ko je postopek končan.

Omogoči polje _Source

Operacija ponovnega indeksiranja zahteva, da je v vseh dokumentih v izvornem indeksu omogočeno izvorno polje. Upoštevajte, da izvorno polje ni indeksirano in ga ni mogoče iskati, je pa uporabno za različne zahteve.

Omogočite polje _Source, tako da dodate vnos, kot je prikazano spodaj:

PUT indeks_1

"Preslikave":
"_source":
"omogočeno": true


Ponovno indeksiraj vse dokumente

Za ponovno indeksiranje dokumentov moramo določiti vir in cilj. Vir in cilj sta lahko obstoječi indeks, vzdevek indeksa in tokovi podatkov. Uporabite lahko indekse iz lokalne ali oddaljene gruče.

OPOMBA: Za uspešno izvedbo indeksiranja si izvor in cilj ne moreta biti podobna. Pred ponovnim indeksiranjem morate tudi ciljno konfigurirati, ker ne uporablja nastavitev iz vira ali katere koli povezane predloge.

Splošna sintaksa za ponovno indeksiranje je:

POST / _reindex

Začnimo z ustvarjanjem dveh indeksov. Prvi bo vir, drugi pa cilj.

PUT / vir_index

"settings": "number_of_replicas": 0, "number_of_shards": 1,
"preslikave": "_source": "omogočeno": resnično, "vzdevki":
"alias_1": ,
"alias_2":
"filter": "izraz":
"uporabnik.id ":" kibana "
, "usmerjanje": "1"


Ukaz cURL je:

curl -XPUT "http: // localhost: 9200 / source_index" -H 'Content-Type: application / json' -d '"settings": "number_of_replicas": 0, "number_of_shards": 1, "preslikave" : "_source": "enabled": true, "alias": "alias_1": , "alias_2": "filter": "term": "uporabnik.id ":" kibana "," usmerjanje ":" 1 " '

Zdaj za ciljni indeks (lahko uporabite zgornji ukaz in spremenite nekaj stvari ali uporabite spodnjega):

PUT / ciljni_indeks

"settings": "number_of_replicas": 0, "number_of_shards": 1,
"preslikave": "_source": "omogočeno": resnično, "vzdevki":
"alias_3": ,
"alias_4":
"filter": "izraz":
"uporabnik.id ":" kibana "
, "usmerjanje": "1"


Kot vedno lahko tudi uporabniki cURL uporabljajo ukaz:

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

Zdaj imamo indekse, ki jih želimo uporabiti, nato pa lahko nadaljujemo s ponovnim indeksiranjem dokumentov.

Upoštevajte spodnjo zahtevo, ki kopira podatke iz source_index v destination_index:

OBJAVI _reindex

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

Ukaz cURL za to je:

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

Z izvajanjem tega ukaza boste dobili podrobne informacije o izvedeni operaciji.

OPOMBA: Vir_index mora imeti podatke.


"vzel": 2836,
"timed_out": false,
"skupaj": 13059,
"posodobljeno": 0,
"ustvarjeno": 13059,
"izbrisano": 0,
"serije": 14,
"version_conflicts": 0,
"noops": 0,
"ponovni poskusi":
"v razsutem stanju": 0,
"iskanje": 0
,
"throttled_millis": 0,
"request_per_second": -1.0,
"throttled_until_millis": 0,
"napake": []

Preverjanje stanja ponovnega indeksiranja

Stanje operacij ponovnega indeksiranja si lahko ogledate s preprosto uporabo _tasks. Na primer, upoštevajte spodnjo zahtevo:

GET / _opravila?podrobno = res & dejanja = * reindex & group_by = starši

Ukaz cURL je:

curl -XGET "http: // localhost: 9200 / _tasks?podrobno = res & dejanja = * reindex & group_by = starši "

Tako boste dobili podrobne informacije o postopku ponovnega indeksiranja, kot je prikazano spodaj:


"naloge" :
"FTd_2iXjSXudN_Ua4tZhHg: 51847":
"vozlišče": "FTd_2iXjSXudN_Ua4tZhHg",
"id": 51847,
"type": "transport",
"action": "indeksi: data / write / reindex",
"stanje" :
"skupaj": 13059,
"posodobljeno": 9000,
"ustvarjeno": 0,
"izbrisano": 0,
"serije": 10,
"version_conflicts": 0,
"noops": 0,
"ponovni poskusi":
"v razsutem stanju": 0,
"iskanje": 0
,
"throttled_millis": 0,
"request_per_second": -1.0,
"throttled_until_millis": 0
,
"description": "reindex from [source_index] to [destination_index] [_ doc]",
"start_time_in_millis": 1611247308063,
"run_time_in_nanos": 2094157836,
"Cancellable": res,
"glave":


Zaključek

Pokrili smo vse, kar morate vedeti o uporabi API-ja za ponovno indeksiranje Elasticsearch za kopiranje dokumentov iz enega indeksa (vir) v drugega (cilj). Čeprav je API za ponovno indeksiranje še več, vam bo ta vodnik pomagal začeti.

Vulkan za uporabnike Linuxa
Z vsako novo generacijo grafičnih kart vidimo, da razvijalci iger premikajo meje grafične zvestobe in se približujejo fotorealizmu. A kljub vsem kredi...
OpenTTD vs Simutrans
Ustvarjanje lastne simulacije prevoza je lahko zabavno, sproščujoče in izjemno vabljivo. Zato morate preizkusiti čim več iger, da boste našli tisto, k...
Vadnica za OpenTTD
OpenTTD je ena izmed najbolj priljubljenih poslovnih simulacijskih iger. V tej igri morate ustvariti čudovit prevozniški posel. Vendar boste začeli na...