Kun muokkaat tietoja Elasticsearch-hakemistossa, se voi johtaa seisokkeihin, kun toiminnallisuus valmistuu ja tiedot uudelleenindeksoidaan.
Tämä opetusohjelma antaa sinulle paljon paremman tavan päivittää indeksit kokematta seisokkeja nykyisen tietolähteen kanssa. Elasticsearchin uudelleenindeksointisovellusliittymän avulla kopioimme tiedot tietystä lähteestä toiseen.
Aloitetaan.
MERKINTÄ: Ennen kuin aloitamme, Reindexing-toiminnot ovat resursseja raskaita, etenkin suurissa indekseissä. Uudelleenindeksointiin tarvittavan ajan minimoimiseksi, poista kopioiden määrä_asetuksista asettamalla arvoksi 0 ja ottamalla ne käyttöön, kun prosessi on valmis.
Ota käyttöön _Lähdekenttä
Reindexing-toiminto edellyttää, että lähdekenttä on käytössä kaikissa lähdehakemiston asiakirjoissa. Huomaa, että lähdekenttää ei ole indeksoitu eikä sitä voi hakea, mutta se on hyödyllinen useiden pyyntöjen yhteydessä.
Ota _Source-kenttä käyttöön lisäämällä merkintä alla olevan kuvan mukaisesti:
PUT index_1"Kartoitukset":
"_lähde":
"käytössä": tosi
Reindex kaikki asiakirjat
Asiakirjojen uudelleenindeksoimiseksi meidän on määritettävä lähde ja kohde. Lähde ja kohde voivat olla olemassa oleva hakemisto, hakemiston alias ja tietovirrat. Voit käyttää paikallisen tai etäklusterin indeksejä.
MERKINTÄ: Indeksoinnin onnistuminen edellyttää, että lähde ja kohde eivät voi olla samanlaisia. Sinun on myös määritettävä kohde tarpeen mukaan ennen uudelleenindeksointia, koska se ei sovi lähteen tai minkään siihen liittyvän mallin asetuksia.
Reindexingin yleinen syntaksin muoto on seuraava:
POST / _reindexAloitetaan luomalla kaksi indeksiä. Ensimmäinen on lähde, ja toinen on kohde.
PUT / source_index"asetukset": "replikoiden_numero": 0, "sirpaleiden lukumäärä": 1,
"kartoitukset": "_source": "enable": true, "aliakset":
"alias_1": ,
"alias_2":
"filter": "termi":
"käyttäjä.id ":" kibana "
, "reititys": "1"
CURL-komento on:
käpristyminen -XPUT "http: // localhost: 9200 / source_index" -H 'Sisältötyyppi: application / json' -d '"asetukset": "Kopioiden lukumäärä": 0, "Sirpojen lukumäärä": 1, "Yhdistelmät" : "_source": "enable": true, "aliases": "alias_1": , "alias_2": "filter": "term": "käyttäjä.id ":" kibana "," routing ":" 1 " 'Nyt kohdehakemisto (voit käyttää yllä olevaa komentoa ja muuttaa muutamia asioita tai käyttää alla olevaa):
PUT / destination_index"asetukset": "replikoiden_numero": 0, "sirpaleiden lukumäärä": 1,
"kartoitukset": "_source": "enable": true, "aliakset":
"alias_3": ,
"alias_4":
"filter": "termi":
"käyttäjä.id ":" kibana "
, "reititys": "1"
Kuten aina, cURL-käyttäjät voivat käyttää komentoa:
käpristyminen -XPUT "http: // localhost: 9200 / destination_index" -H 'Sisältötyyppi: application / json' -d '"settings": "Replikoiden_numero": 0, "Shards_of_numero_0": 1, "mappaukset" : "_source": "enable": true, "aliases": "alias_3": , "alias_4": "filter": "term": "käyttäjä.id ":" kibana "," routing ":" 1 " 'Nyt meillä on indeksit, joita haluamme käyttää, voimme sitten siirtyä uudelleenindeksoimaan asiakirjoja.
Harkitse alla olevaa pyyntöä, joka kopioi tiedot lähteestä_index kohteeseen kohde_index:
POST _reindex"lähde":
"index": "source_index"
,
"dest":
"index": "kohde_index"
Tämän CURL-komento on:
kihara -XPOST "http: // localhost: 9200 / _reindex" -H 'Sisältötyyppi: application / json' -d '"lähde": "hakemisto": ".kibana "," dest ": " index ":" destination_index " 'Tämän komennon suorittamisen pitäisi antaa sinulle yksityiskohtaista tietoa suoritetusta toiminnosta.
MERKINTÄ: Lähde_indexillä pitäisi olla tietoja.
"otti": 2836,
"timed_out": epätosi,
"yhteensä": 13059,
"päivitetty": 0,
"luotu": 13059,
"poistettu": 0,
"erät": 14,
"version_confliktit": 0,
"noops": 0,
"yrittää uudelleen":
"irtotavarana": 0,
"haku": 0
,
"throttled_millis": 0,
"pyynnöt_sekunnissa": -1.0,
"throttled_until_millis": 0,
"epäonnistumiset": []
Reindexing-tilan tarkistaminen
Voit tarkastella Reindexing-toimintojen tilaa yksinkertaisesti käyttämällä _tasksia. Harkitse esimerkiksi alla olevaa pyyntöä:
GET / _tehtävät?yksityiskohtainen = tosi & toiminnot = * reindex & group_by = vanhemmatCURL-komento on:
curl -XGET "http: // localhost: 9200 / _tasks?yksityiskohtainen = tosi & toiminnot = * reindex & group_by = vanhemmat "Tämän pitäisi antaa sinulle yksityiskohtaista tietoa Reindexing-prosessista, kuten alla on esitetty:
"tehtävät":
"FTd_2iXjSXudN_Ua4tZhHg: 51847":
"solmu": "FTd_2iXjSXudN_Ua4tZhHg",
"id": 51847,
"type": "kuljetus",
"action": "indeksit: data / write / reindex",
"Tila" :
"yhteensä": 13059,
"päivitetty": 9000,
"luotu": 0,
"poistettu": 0,
"erät": 10,
"version_confliktit": 0,
"noops": 0,
"yrittää uudelleen":
"irtotavarana": 0,
"haku": 0
,
"throttled_millis": 0,
"pyynnöt_sekunnissa": -1.0,
"throttled_until_millis": 0
,
"description": "reindex kohteesta [source_index] kohteeseen [destination_index] [_ doc]",
"start_time_in_millis": 1611247308063,
"running_time_in_nanos": 2094157836,
"peruutettavissa": totta,
"otsikot":
Johtopäätös
Olemme käsitelleet kaiken mitä sinun tarvitsee tietää Elasticsearch Reindexing -sovellusliittymän käytöstä asiakirjojen kopioimiseksi hakemistosta (lähde) toiseen (kohde). Vaikka Reindexing-sovellusliittymässä on enemmän, tämän oppaan pitäisi auttaa sinua pääsemään alkuun.