Kui muudate Elasticsearchi indeksis olevaid andmeid, võib see põhjustada seisakuid, kuna funktsionaalsus saab valmis ja andmed taasindeksitakse.
See õpetus annab teile palju parema viisi indeksite värskendamiseks ilma olemasoleva andmeallikaga seisakuid kogemata. Elasticsearchi uuesti indekseerimise API abil kopeerime andmed konkreetsest allikast teise.
Alustagem.
MÄRGE: Enne alustamist on Reindexingi toimingud ressursimahukad, eriti suurte indeksite puhul. Reindexinguks vajaliku aja minimeerimiseks keelake replikade arv_, seades väärtuseks 0 ja lubades need pärast protsessi lõppu.
Luba väli _Source
Reindexing toiming eeldab, et allikaväli oleks lubatud kõigis lähteindeksi dokumentides. Pange tähele, et allika väli ei ole indekseeritud ja seda ei saa otsida, kuid see on kasulik erinevate taotluste korral.
Lubage väli _Source, lisades kirje, nagu allpool näidatud:
Pane register_1„Kaardistused”:
"_source":
"lubatud": tõene
Reindex kõik dokumendid
Dokumendi uuestiindeksimiseks peame määrama allika ja sihtkoha. Allikas ja sihtkoht võivad olla olemasolev register, indeksnimed ja andmevood. Võite kasutada kohaliku või kaugklastri indekseid.
MÄRGE: Indekseerimise edukaks toimimiseks ei saa nii lähte- kui ka sihtkoht olla sarnased. Enne reindexingi loomist peate ka sihtkoha vastavalt vajadusele konfigureerima, kuna see ei rakenda allika ega seotud malli sätteid.
Reindexingi üldine süntaks on järgmine:
POST / _reindexAlustame kahe indeksi loomisest. Esimene on allikas ja teine sihtkoht.
PUT / source_index"seaded": "replikade arv": 0, "killude arv": 1,
"kaardistused": "_source": "lubatud": true, "varjunimed":
"alias_1": ,
"alias_2":
"filter": "termin":
"kasutaja.id ":" kibana "
, "routing": "1"
Käsk cURL on:
curl -XPUT "http: // localhost: 9200 / source_index" -H "Sisu-tüüp: application / json '-d' " seaded ": " replikade arv ": 0," Shardide arv ": 1," kaardistused " : "_source": "enabled": true, "aliases": "alias_1": , "alias_2": "filter": "term": "kasutaja.id ":" kibana "," routing ":" 1 " 'Nüüd sihtkohaindeksi kohta (saate kasutada ülaltoodud käsku ja muuta mõnda asja või kasutada allpool toodud):
PUT / destination_index"seaded": "replikade arv": 0, "killude arv": 1,
"kaardistused": "_source": "lubatud": true, "varjunimed":
"alias_3": ,
"alias_4":
"filter": "termin":
"kasutaja.id ":" kibana "
, "routing": "1"
Nagu alati, saavad CURL-i kasutajad kasutada käsku:
curl -XPUT "http: // localhost: 9200 / destination_index" -H 'Sisu-tüüp: application / json' -d '"seaded": "replikade arv": 0, "Shardide arv": 1, "kaardistused" : "_source": "enabled": true, "aliases": "alias_3": , "alias_4": "filter": "term": "kasutaja.id ":" kibana "," routing ":" 1 " 'Nüüd on meil indeksid, mida soovime kasutada, ja saame seejärel edasi liikuda dokumentide uuestiindeksiks.
Mõelge allolevale taotlusele, mis kopeerib andmed lähtekoodist index sihtkohta:
POST _reindex"Allikas":
"index": "source_index"
,
"dest":
"index": "sihtkoha_indeks"
Selle jaoks on käsk cURL:
curl -XPOST "http: // localhost: 9200 / _reindex" -H 'Sisu-tüüp: rakendus / json' -d '"allikas": "register": ".kibana "," dest ": " index ":" destination_index " 'Selle käsu täitmine peaks andma teile üksikasjalikku teavet toimingu kohta.
MÄRGE: Source_indexil peaks olema andmeid.
"võttis": 2836,
"timed_out": vale,
"kokku": 13059,
"uuendatud": 0,
"loodud": 13059,
"kustutatud": 0,
"partiid": 14,
"versiooni_konfliktid": 0,
"noops": 0,
"proovib uuesti":
"lahtiselt": 0,
"otsing": 0
,
"throttled_millis": 0,
"taotlused_sekund": -1.0,
"throttled_until_millis": 0,
"ebaõnnestumised": []
Reindexing oleku kontrollimine
Reindexingi toimingute olekut saate vaadata lihtsalt _tasks abil. Kaaluge näiteks järgmist taotlust:
GET / _ülesanded?detail = true & action = * reindex & group_by = vanemadKäsk cURL on:
curl -XGET "http: // localhost: 9200 / _tasks?detail = true & actions = * reindex & group_by = vanemad "See peaks andma teile üksikasjalikku teavet Reindexingi protsessi kohta, nagu allpool näidatud:
"ülesanded":
"FTd_2iXjSXudN_Ua4tZhHg: 51847":
"sõlm": "FTd_2iXjSXudN_Ua4tZhHg",
"id": 51847,
"type": "transport",
"action": "indeksid: data / write / reindex",
"status":
"kokku": 13059,
"uuendatud": 9000,
"loodud": 0,
"kustutatud": 0,
"partiid": 10,
"versiooni_konfliktid": 0,
"noops": 0,
"proovib uuesti":
"lahtiselt": 0,
"otsing": 0
,
"throttled_millis": 0,
"taotlused_sekund": -1.0,
"throttled_until_millis": 0
,
"description": "reindex asukohast [source_index] kuni [destination_index] [_ doc]",
"start_time_in_millis": 1611247308063,
"running_time_in_nanos": 2094157836,
"tühistatav": tõsi,
"päised":
Järeldus
Oleme käsitlenud kõike, mida peate teadma Elasticsearch Reindexing API kasutamise kohta dokumentide kopeerimiseks ühest registrist (allikast) teise (sihtkohta). Kuigi Reindexing API-s on veel midagi, peaks see juhend aitama teil alustada.