Elastinė paieška

Elasticsearch Reindex visus indeksus ir patikrinkite būseną

Elasticsearch Reindex visus indeksus ir patikrinkite būseną
Kai dirbate su duomenų bazėmis, neišvengiamai turėsite atlikti pakeitimus, pvz., Pridėti, pašalinti ir modifikuoti duomenis.

Kai modifikuojate duomenis „Elasticsearch“ rodyklėje, tai gali sukelti prastovą, nes funkcija bus baigta ir duomenys bus atnaujinti.

Ši pamoka suteiks jums daug geresnį būdą atnaujinti indeksus nepatiriant prastovų naudojant esamą duomenų šaltinį. Naudodami „Elasticsearch“ pakartotinio indeksavimo API kopijuosime duomenis iš konkretaus šaltinio į kitą.

Pradėkime.

PASTABA: Prieš pradedant, „Reindexing“ operacijos yra daug išteklių, ypač didelių indeksų atveju. Kad sumažintumėte laiką, reikalingą pakartotiniam indeksavimui, išjunkite replikų skaičių, nustatydami vertę į 0 ir įgalinkite jas, kai procesas bus baigtas.

Įgalinti lauką _Source

Reindexing operacijai reikia, kad šaltinio laukas būtų įjungtas visuose šaltinio indekso dokumentuose. Atminkite, kad šaltinio laukas nėra indeksuojamas ir jo negalima ieškoti, tačiau jis naudingas įvairioms užklausoms.

Įgalinkite lauką _Source, pridėdami įrašą, kaip parodyta žemiau:

PUT index_1

„Susiejimai“:
"_source":
„įgalinta“: tiesa


Reindex visi dokumentai

Norėdami reindeksuoti dokumentus, turime nurodyti šaltinį ir paskirties vietą. Šaltinis ir paskirties vieta gali būti esamas indeksas, indekso slapyvardis ir duomenų srautai. Galite naudoti vietinio ar nuotolinio sankaupos indeksus.

PASTABA: Kad indeksavimas vyktų sėkmingai, šaltinis ir paskirtis negali būti panašūs. Taip pat turite sukonfigūruoti paskirties vietą, kaip reikalaujama prieš pakartotinį indeksavimą, nes ji netaiko nustatymų iš šaltinio ar bet kurio susijusio šablono.

Bendra Reindexing sintaksė yra tokia:

POST / _reindex

Pradėkime nuo dviejų indeksų sukūrimo. Pirmasis bus šaltinis, o kitas - tikslas.

PUT / source_index

"nustatymai": "replikų skaičius": 0, "dalelių skaičius": 1,
"susiejimai": "_source": "enabled": true, "pseudonimai":
„alias_1“: ,
"alias_2":
"filtras": "terminas":
"Vartotojas.id ":" kibana "
, „routing“: „1“


CURL komanda yra:

garbanos -XPUT "http: // localhost: 9200 / source_index" -H 'Content-Type: application / json' -d '"settings": "rep_licence_s_____0_0_0_0_0_0", "Shell_of_Shell": 1, "susiejimai" : "_source": "enabled": true, "aliases": "alias_1": , "alias_2": "filter": "term": "user.id ":" kibana "," routing ":" 1 " '

Dabar apie paskirties indeksą (galite naudoti pirmiau pateiktą komandą ir pakeisti keletą dalykų arba naudoti toliau pateiktą):

PUT / destination_index

"nustatymai": "replikų skaičius": 0, "dalelių skaičius": 1,
"susiejimai": "_source": "enabled": true, "pseudonimai":
"alias_3": ,
"alias_4":
"filtras": "terminas":
"Vartotojas.id ":" kibana "
, „routing“: „1“


Kaip visada, „CURL“ vartotojai gali naudoti komandą:

garbanos -XPUT "http: // localhost: 9200 / destination_index" -H 'Content-Type: application / json' -d '"settings": "Rep_lic_s_____0_0_0_0_0_0", ""____sup___supplication": 0, "_____s__shards ": 1," susiejimai " : "_source": "enabled": true, "aliases": "alias_3": , "alias_4": "filter": "term": "vartotojas.id ":" kibana "," routing ":" 1 " '

Dabar mes turime norimus naudoti indeksus, tada galime pereiti prie dokumentų reeksekso.

Apsvarstykite toliau pateiktą užklausą, kuri nukopijuoja duomenis iš source_index į destination_index:

POST _reindex

„Šaltinis“:
"index": "source_index"
,
„dest“:
"index": "paskirties_indeksas"

CURL komanda tai yra:

garbanos -XPOST "http: // localhost: 9200 / _reindex" -H 'Turinio tipas: programa / json' -d '"šaltinis": "rodyklė": ".kibana "," dest ": " index ":" destination_index " '

Vykdydami šią komandą turėtumėte gauti išsamią informaciją apie atliktą operaciją.

PASTABA: Source_index turėtų turėti duomenų.


„paėmė“: 2836,
„timed_out“: klaidingas,
„iš viso“: 13059,
„atnaujinta“: 0,
„sukurta“: 13059,
„ištrinta“: 0,
„partijos“: 14,
"versija_konfliktai": 0,
"ne": 0,
„bando iš naujo“:
„urmas“: 0,
„paieška“: 0
,
"throttled_millis": 0,
„užklausos_per sekundę“: -1.0,
"throttled_until_millis": 0,
„nesėkmės“: []

Reindeksavimo būsenos tikrinimas

„Reindexing“ operacijų būseną galite peržiūrėti paprasčiausiai naudodami „_ taskks“. Pvz., Apsvarstykite toliau pateiktą užklausą:

GET / _užduotys?detalus = tiesa & veiksmai = * reindex & group_by = tėvai

CURL komanda yra:

garbanoti -XGET "http: // localhost: 9200 / _tasks?išsami = tiesa ir veiksmai = * reindex & group_by = tėvai "

Tai turėtų suteikti jums išsamią informaciją apie Reindexing procesą, kaip parodyta žemiau:


"užduotys" :
"FTd_2iXjSXudN_Ua4tZhHg: 51847":
„mazgas“: „FTd_2iXjSXudN_Ua4tZhHg“,
„id“: 51847,
„type“: „transportas“,
"action": "indeksai: data / write / reindex",
"status":
„iš viso“: 13059,
„atnaujinta“: 9000,
„sukurta“: 0,
„ištrinta“: 0,
„partijos“: 10,
"versija_konfliktai": 0,
„noops“: 0,
„bando iš naujo“:
„urmas“: 0,
„paieška“: 0
,
"throttled_millis": 0,
„užklausos_per sekundę“: -1.0,
"throttled_until_millis": 0
,
"description": "reindex nuo [source_index] iki [destination_index] [_ doc]",
„start_time_in_millis“: 1611247308063,
„running_time_in_nanos“: 2094157836,
„atšaukiama“: tiesa,
„antraštės“:


Išvada

Apžvelgėme viską, ką reikia žinoti apie „Elasticsearch Reindexing“ API naudojimą norint kopijuoti dokumentus iš vieno indekso (šaltinio) į kitą (paskirties vietą). Nors „Reindexing“ API yra daugiau, šis vadovas turėtų padėti jums pradėti.

Kaip sukurti žaidimą „Linux“
Prieš dešimtmetį nedaugelis „Linux“ vartotojų numatė, kad jų mėgstama operacinė sistema vieną dieną bus populiari komercinių vaizdo žaidimų žaidimų pl...
Atvirojo kodo komercinių žaidimų variklių uostai
Nemokami atvirojo kodo ir įvairių platformų žaidimų varikliai gali būti naudojami žaidžiant senus ir kai kuriuos gana naujus žaidimų pavadinimus. Šiam...
Geriausi „Linux“ komandinės eilutės žaidimai
Komandų eilutė yra ne tik jūsų didžiausias sąjungininkas naudojant „Linux“, bet ir pramogų šaltinis, nes ją galite naudoti norėdami žaisti daug įdomių...