Elasticsearch Eliminați câmpul

Elasticsearch Eliminati Campul



„Când lucrați cu indici Elasticearch, este posibil să întâlniți o instanță în care trebuie să eliminați un câmp dintr-un document existent. Din păcate, Elasticsearch nu oferă o solicitare nativă pe care o putem folosi pentru a efectua acțiunea menționată.

Putem, totuși, să folosim API-ul de actualizare a documentelor și să transmitem un script care ne permite să eliminăm un câmp pe baza numelui său.”







NOTĂ : Acest proces necesită să aveți cunoștințe de bază despre scriptingul Elasticsearch și despre API-ul de actualizare a documentelor. Simțiți-vă liber să explorați documentele sau tutorialele noastre pe această temă pentru a afla mai multe.



Să ne scufundăm.



Verificați dacă documentul există

Înainte de a elimina un câmp dintr-un anumit document, este bine să vă asigurați că documentul țintă există în index.





Putem folosi API-ul de căutare pentru a prelua documentul țintă.

De exemplu, să presupunem că avem indexul kibana_sample_logs_data. Putem căuta în index un document care conține un IP specific.



NOTĂ : Exemplul de mai sus este folosit doar în scop ilustrativ. Puteți utiliza diverse metode pentru a verifica dacă un anumit document este disponibil în index.

curl -XGET 'http://localhost:9200/kibana_sample_data_logs/_search' -H 'kbn-xsrf: raportare' -H 'Tip de conținut: aplicație/json' -d'
{
'dimensiune': 0,
'interogare': {'potrivire': {
'ip': '171.24.97.162'
}}
}'

Ieșire rezultată:

{
„a luat”: 3,
„timed_out”: fals,
„_shards”: {
„total”: 1,
„de succes”: 1,
„sărit”: 0,
„eșuat”: 0
},
„hituri”: {
„total”: {
„valoare”: 17,
„relație”: „echivalent”
},
„max_score”: nul,
„hituri”: []
}

}

Apoi, un script simplu poate elimina un câmp țintă din document. Începeți prin a vă conecta la consola Kibana și executați comanda:

curl -XPOST 'http://localhost:9200/kibana_sample_data_logs/_update/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: raportare' -H 'Tip de conținut: aplicație/json' -d'
{
'script': 'ctx._source.remove('\''ip'\'')'
}'

Solicitarea de mai sus folosește un script de context nedureros pentru a actualiza documentul și pentru a elimina câmpul „ip” cu ID-ul specificat.

Ieșire:

{
'_index': 'kibana_sample_data_logs',
'_id': '5pA49IIBkTjaZ6TtsiB5',
„_versiunea”: 2,
'rezultat': 'actualizat',
„_shards”: {
„total”: 2,
„de succes”: 2,
„eșuat”: 0
},
„_seq_no”: 14074,
„_termen_primar”: 1
}

Odată ce documentul este actualizat, puteți verifica prin rularea interogării.:

curl -XGET „http://localhost:9200/kibana_sample_data_logs/_doc/5pA49IIBkTjaZ6TtsiB5” -H „kbn-xsrf: raportare”

Solicitarea de mai sus ar trebui să returneze datele stocate în document cu ID-ul specificat.

Putem verifica că câmpul IP nu mai este în document.

Concluzie

În acest articol, ați învățat cum să utilizați capabilitățile de scriptare Elasticsearch pentru a elimina un câmp dintr-un document existent.

Multumesc pentru lectura!!