Căutare elastică

Elasticsearch Reindexează toți indicii și verifică starea

Elasticsearch Reindexează toți indicii și verifică starea
Când lucrați cu baze de date, va trebui inevitabil să faceți modificări, cum ar fi adăugarea, eliminarea și modificarea datelor.

Când modificați datele într-un index Elasticsearch, aceasta poate duce la perioade de nefuncționare pe măsură ce funcționalitatea se finalizează și datele sunt reindexate.

Acest tutorial vă va oferi o modalitate mult mai bună de actualizare a indicilor fără a experimenta nicio perioadă de nefuncționare cu sursa de date existentă. Folosind API-ul de reindexare Elasticsearch, vom copia datele dintr-o anumită sursă în alta.

Să începem.

NOTĂ: Înainte de a începe, operațiunile de reindexare sunt grele, mai ales pe indici mari. Pentru a minimiza timpul necesar pentru reindexare, dezactivați number_of_replicas setând valoarea la 0 și activați-le după finalizarea procesului.

Activați câmpul _Surse

Operațiunea de reindexare necesită ca câmpul sursă să fie activat pe toate documentele din indexul sursă. Rețineți că câmpul sursă nu este indexat și nu poate fi căutat, dar este util pentru diverse cereri.

Activați câmpul _Sursă adăugând o intrare așa cum se arată mai jos:

PUT index_1

„Mapări”:
"_sursă":
„activate”: adevărat


Reindexează toate documentele

Pentru reindexarea documentelor, trebuie să specificăm sursa și destinația. Sursa și destinația pot fi un index existent, un alias de index și fluxuri de date. Puteți utiliza indicii din clusterul local sau de la distanță.

NOTĂ: Pentru ca indexarea să aibă loc cu succes, atât sursa, cât și destinația nu pot fi similare. De asemenea, trebuie să configurați destinația după cum este necesar înainte de reindexare, deoarece nu aplică setări din sursă sau din niciun șablon asociat.

Sintaxa generală pentru reindexare este următoarea:

POST / _reindex

Să începem prin crearea a doi indici. Prima va fi sursa, iar cealaltă va fi destinația.

PUT / source_index

"settings": "number_of_replicas": 0, "number_of_shards": 1,
"mappings": "_source": "enabled": true, "aliases":
„alias_1”: ,
„alias_2”:
"filter": "termen":
"utilizator.id ":" kibana "
, "rutare": "1"


Comanda cURL este:

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

Acum, pentru indexul destinației (puteți utiliza comanda de mai sus și puteți schimba câteva lucruri sau utilizați cea dată mai jos):

PUT / destination_index

"settings": "number_of_replicas": 0, "number_of_shards": 1,
"mappings": "_source": "enabled": true, "aliases":
"alias_3": ,
"alias_4":
"filter": "termen":
"utilizator.id ":" kibana "
, "rutare": "1"


Ca întotdeauna, utilizatorii cURL pot folosi comanda:

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

Acum, avem indicii pe care vrem să-i folosim, putem trece apoi la reindexarea documentelor.

Luați în considerare solicitarea de mai jos care copiază datele din source_index în destination_index:

POST _reindex

"sursă":
"index": "source_index"
,
"dest":
"index": "destination_index"

Comanda cURL pentru aceasta este:

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

Executarea acestei comenzi ar trebui să vă ofere informații detaliate despre operațiunea efectuată.

NOTĂ: Source_index ar trebui să conțină date.


„a luat”: 2836,
„timed_out”: fals,
„total”: 13059,
„actualizat”: 0,
„creat”: 13059,
„șters”: 0,
„loturi”: 14,
"version_conflicts": 0,
„noops”: 0,
„reîncercări”:
„vrac”: 0,
„căutare”: 0
,
"throttled_millis": 0,
"requests_per_second": -1.0,
"throttled_until_millis": 0,
„eșecuri”: []

Verificarea stării de reindexare

Puteți vizualiza starea operațiunilor de reindexare utilizând pur și simplu _taskurile. De exemplu, luați în considerare solicitarea de mai jos:

GET / _tasks?detailed = true & actions = * reindex & group_by = parents

Comanda cURL este:

curl -XGET "http: // localhost: 9200 / _tasks?detailed = true & actions = * reindex & group_by = parents "

Aceasta ar trebui să vă ofere informații detaliate despre procesul de reindexare așa cum se arată mai jos:


"sarcini" :
„FTd_2iXjSXudN_Ua4tZhHg: 51847”:
"nod": "FTd_2iXjSXudN_Ua4tZhHg",
„id”: 51847,
„tip”: „transport”,
"action": "indici: date / write / reindex",
"stare" :
„total”: 13059,
„actualizat”: 9000,
„creat”: 0,
„șters”: 0,
„loturi”: 10,
"version_conflicts": 0,
„noops”: 0,
„reîncercări”:
„vrac”: 0,
„căutare”: 0
,
"throttled_millis": 0,
"requests_per_second": -1.0,
"throttled_until_millis": 0
,
"description": "reindex de la [source_index] la [destination_index] [_ doc]",
"start_time_in_millis": 1611247308063,
"running_time_in_nanos": 2094157836,
„anulabil”: adevărat,
„anteturi”:


Concluzie

Am acoperit tot ce trebuie să știți despre utilizarea Elasticsearch Reindexing API pentru a copia documente dintr-un index (sursă) în altul (destinație). Deși există mai multe informații despre API-ul Reindexing, acest ghid ar trebui să vă ajute să începeți.

Instrumente utile pentru jucătorii Linux
Dacă vă place să jucați jocuri pe Linux, este posibil să fi folosit aplicații și utilitare precum Wine, Lutris și OBS Studio pentru a îmbunătăți exper...
Jocuri HD remasterizate pentru Linux care nu au avut niciodată lansare Linux mai devreme
Mulți dezvoltatori și editori de jocuri vin cu remasterizarea HD a jocurilor vechi pentru a prelungi durata de viață a francizei, vă rog fanilor să so...
Cum se utilizează AutoKey pentru automatizarea jocurilor Linux
AutoKey este un utilitar de automatizare desktop pentru Linux și X11, programat în Python 3, GTK și Qt. Folosind funcțiile sale de scriptare și MACRO,...