Elasticsearch Noņemt lauku

Elasticsearch Nonemt Lauku



'Strādājot ar Elasticearch indeksiem, jūs varat saskarties ar gadījumu, kad jums ir jānoņem lauks no esoša dokumenta. Diemžēl Elasticsearch nesniedz vietējo pieprasījumu, ko mēs varētu izmantot, lai veiktu minēto darbību.

Tomēr mēs varam izmantot dokumentu atjaunināšanas API un nodot skriptu, kas ļauj noņemt lauku, pamatojoties uz tā nosaukumu.







PIEZĪME : šim procesam ir nepieciešamas pamatzināšanas par Elasticsearch skriptēšanu un dokumentu atjaunināšanas API. Lai uzzinātu vairāk, izpētiet dokumentus vai mūsu apmācības par šo tēmu.



Iegremdējamies.



Pārbaudiet, vai dokuments pastāv

Pirms lauka noņemšanas no konkrēta dokumenta ir lietderīgi pārliecināties, ka mērķa dokuments atrodas rādītājā.





Mēs varam izmantot meklēšanas API, lai iegūtu mērķa dokumentu.

Piemēram, pieņemsim, ka mums ir indekss kibana_sample_logs_data. Mēs varam meklēt indeksā dokumentu, kas satur noteiktu IP.



PIEZĪME : Iepriekš minētais piemērs ir izmantots tikai ilustrācijas nolūkos. Varat izmantot dažādas metodes, lai pārbaudītu, vai rādītājā ir pieejams konkrēts dokuments.

curl -XGET 'http://localhost:9200/kibana_sample_data_logs/_search' -H 'kbn-xsrf: ziņošana' -H 'Satura veids: lietojumprogramma/json' -d'
{
'izmērs': 0,
'query': {'match': {
'ip': '171.24.97.162'
}}
}'

Iegūtā izvade:

{
'paņēma': 3,
'timed_out': nepatiess,
'_shards': {
'kopā': 1,
'veiksmīgi': 1,
'izlaists': 0,
'neizdevās': 0
},
'trāpījumi': {
'Kopā': {
'vērtība': 17,
'relation': 'eq'
},
'max_score': null,
'trāpījumi': []
}

}

Pēc tam vienkāršs skripts var noņemt mērķa lauku no dokumenta. Sāciet, piesakoties savā Kibana konsolē un palaidiet komandu:

curl -XPOST 'http://localhost:9200/kibana_sample_data_logs/_update/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: reporting' -H 'Satura veids: lietojumprogramma/json' -d'
{
'skripts': 'ctx._source.remove('\''ip'\'')'
}'

Iepriekš minētajā pieprasījumā tiek izmantots nesāpīgs konteksta skripts, lai atjauninātu dokumentu un noņemtu lauku “ip” ar norādīto ID.

Izvade:

{
'_index': 'kibana_sample_data_logs',
'_id': '5pA49IIBkTjaZ6TtsiB5',
'_version': 2,
'rezultāts': 'atjaunināts',
'_shards': {
'kopā': 2,
'veiksmīgi': 2,
'neizdevās': 0
},
'_seq_no': 14074,
'_primary_term': 1
}

Kad dokuments ir atjaunināts, varat to pārbaudīt, izpildot vaicājumu.:

curl -XGET 'http://localhost:9200/kibana_sample_data_logs/_doc/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: ziņošana'

Iepriekš minētajā pieprasījumā ir jāatgriež dokumentā saglabātie dati ar norādīto ID.

Mēs varam pārbaudīt, vai IP lauks vairs nav dokumentā.

Secinājums

Šajā rakstā jūs uzzinājāt, kā izmantot Elasticsearch skriptēšanas iespējas, lai noņemtu lauku no esoša dokumenta.

Paldies, ka lasījāt!!