Pārveidojot datus Elasticsearch indeksā, tas var novest pie dīkstāves, jo funkcionalitāte tiek pabeigta un dati tiek atjaunoti.
Šī apmācība sniegs jums daudz labāku veidu, kā atjaunināt indeksus, neradot dīkstāves ar esošo datu avotu. Izmantojot Elasticsearch atkārtotās indeksēšanas API, mēs kopēsim datus no konkrēta avota uz citu.
Ļaujiet mums sākt darbu.
PIEZĪME: Pirms mēs sākam darbu, Reindexing operācijas ir daudz resursu, īpaši attiecībā uz lieliem indeksiem. Lai samazinātu reindeksēšanai nepieciešamo laiku, atspējojiet repliku skaitu, iestatot vērtību 0 un iespējojot tās, kad process ir pabeigts.
Iespējot lauku _ avots
Veicot operāciju Reindexing, visiem avota indeksa dokumentiem ir jāiespējo avota lauks. Ņemiet vērā, ka avota lauks nav indeksēts un to nevar meklēt, bet tas ir noderīgs dažādiem pieprasījumiem.
Iespējojiet lauku _Source, pievienojot ierakstu, kā parādīts zemāk:
PUT index_1“Kartējumi”:
"_source":
"iespējots": taisnība
Reindex visi dokumenti
Lai reindexētu dokumentus, mums jānorāda avots un galamērķis. Avots un galamērķis var būt esošs indekss, indeksa aizstājvārds un datu straumes. Varat izmantot vietējā vai attālā klastera indeksus.
PIEZĪME: Lai indeksēšana notiktu veiksmīgi, gan avots, gan galamērķis nevar būt līdzīgi. Jums arī jākonfigurē galamērķis pirms reindexing, jo tas nepiemēro avota vai saistītās veidnes iestatījumus.
Reindexing vispārējā sintakse ir šāda:
POST / _reindexSāksim ar divu indeksu izveidi. Pirmais būs avots, bet otrs būs galamērķis.
PUT / source_index"iestatījumi": "kopiju skaits": 0, "šķembu skaits": 1,
"kartējumi": "_source": "enabled": true, "aliases":
"alias_1": ,
"alias_2":
"filtrs": "termins":
"lietotājs.id ":" kibana "
, "routing": "1"
CURL komanda ir:
čokurošanās -XPUT "http: // localhost: 9200 / source_index" -H 'Content-Type: application / json' -d '"settings": "Rep_licence_summer": 0, "_shardu_numurs ": 1," kartējumi " : "_source": "enabled": true, "aliases": "alias_1": , "alias_2": "filter": "term": "lietotājs.id ":" kibana "," routing ":" 1 " 'Tagad par galamērķa indeksu (varat izmantot iepriekš minēto komandu un mainīt dažas lietas vai izmantot tālāk norādīto):
PUT / destination_index"iestatījumi": "kopiju skaits": 0, "šķembu skaits": 1,
"kartējumi": "_source": "enabled": true, "aliases":
"alias_3": ,
"alias_4":
"filtrs": "termins":
"lietotājs.id ":" kibana "
, "routing": "1"
Kā vienmēr, cURL lietotāji var izmantot komandu:
čokurošanās -XPUT "http: // localhost: 9200 / destination_index" -H 'Satura tips: pieteikums / json' -d '"iestatījumi": "Kopiju skaits": 0, "Kopiju skaits": 1 "," Kartējumi " : "_source": "enabled": true, "aliases": "alias_3": , "alias_4": "filter": "term": "lietotājs.id ":" kibana "," routing ":" 1 " 'Tagad mums ir indeksi, kurus mēs vēlamies izmantot, un pēc tam mēs varam pāriet uz dokumentu atkārtotu indeksēšanu.
Apsveriet tālāk norādīto pieprasījumu, kas kopē datus no source_index uz destination_index:
POST _reindex“Avots”:
"index": "source_index"
,
"dest":
"index": "destination_index"
CURL komanda tam ir:
čokurošanās -XPOST "http: // localhost: 9200 / _reindex" -H 'Content-Type: application / json' -d '"source": "index": ".kibana "," dest ": " index ":" destination_index " 'Izpildot šo komandu, jums jāsniedz detalizēta informācija par veikto darbību.
PIEZĪME: Source_index jābūt datiem.
"ņēma": 2836,
"timed_out": nepatiesa,
"kopā": 13059,
"atjaunināts": 0,
"izveidots": 13059,
"dzēsts": 0,
"partijas": 14,
"versija_konflikti": 0,
"noops": 0,
"mēģina atkārtoti":
"beztaras": 0,
"meklēt": 0
,
"throttled_millis": 0,
"pieprasījumi_sekunde": -1.0,
"throttled_until_millis": 0,
"neveiksmes": []
Reindexing statusa pārbaude
Reindexing darbību statusu varat apskatīt, vienkārši izmantojot _tasks. Piemēram, apsveriet tālāk minēto pieprasījumu:
GET / _uzdevumi?detalizēts = patiess & darbības = * reindex & group_by = vecākiCURL komanda ir:
čokurošanās -XGET "http: // localhost: 9200 / _tasks?detalizēts = patiess & darbības = * reindex & group_by = vecāki "Tam vajadzētu sniegt detalizētu informāciju par Reindexing procesu, kā parādīts zemāk:
"uzdevumi":
"FTd_2iXjSXudN_Ua4tZhHg: 51847":
"mezgls": "FTd_2iXjSXudN_Ua4tZhHg",
"id": 51847,
"type": "transport",
"action": "indeksi: dati / rakstīšana / reindex",
"status":
"kopā": 13059,
"atjaunināts": 9000,
"izveidots": 0,
"dzēsts": 0,
"partijas": 10,
"versija_konflikti": 0,
"noops": 0,
"mēģina atkārtoti":
"beztaras": 0,
"meklēt": 0
,
"throttled_millis": 0,
"pieprasījumi_sekunde": -1.0,
"throttled_until_millis": 0
,
"description": "reindex no [source_index] uz [destination_index] [_ doc]",
"start_time_in_millis": 1611247308063,
"running_time_in_nanos": 2094157836,
"atceļams": taisnība,
"galvenes":
Secinājums
Mēs esam izskatījuši visu, kas jums jāzina par Elasticsearch Reindexing API izmantošanu, lai kopētu dokumentus no viena indeksa (avota) uz citu (galamērķi). Lai gan Reindexing API ir vairāk, šī rokasgrāmata palīdzēs jums sākt darbu.