Elasticsearch Ukloni polje

Elasticsearch Ukloni Polje



“Kada radite s Elasticearch indeksima, možete naići na instancu u kojoj trebate ukloniti polje iz postojećeg dokumenta. Nažalost, Elasticsearch ne nudi izvorni zahtjev koji možemo koristiti za izvođenje navedene radnje.

Međutim, možemo upotrijebiti API za ažuriranje dokumenta i proslijediti skriptu koja nam omogućuje da uklonimo polje na temelju njegovog naziva.”







BILJEŠKA : Ovaj proces zahtijeva osnovno znanje o Elasticsearch skriptiranju i API-ju za ažuriranje dokumenta. Slobodno istražite dokumente ili naše vodiče na tu temu kako biste saznali više.



Zaronimo.



Provjerite postoji li dokument

Prije uklanjanja polja iz određenog dokumenta, dobro je provjeriti postoji li ciljni dokument unutar indeksa.





Možemo koristiti API za pretraživanje da dohvatimo ciljni dokument.

Na primjer, pretpostavimo da imamo indeks kibana_sample_logs_data. Možemo pretražiti indeks za dokument koji sadrži određeni IP.



BILJEŠKA : Gornji primjer se koristi samo u svrhu ilustracije. Možete koristiti različite metode da provjerite je li određeni dokument dostupan u indeksu.

curl -XGET 'http://localhost:9200/kibana_sample_data_logs/_search' -H 'kbn-xsrf: izvješćivanje' -H 'Vrsta sadržaja: aplikacija/json' -d'
{
'veličina': 0,
'upit': {'podudaranje': {
'ip': '171.24.97.162'
}}
}'

Rezultirajući rezultat:

{
'uzeo': 3,
'timed_out': netočno,
'_krhotine': {
'ukupno': 1,
'uspješan': 1,
'preskočeno': 0,
'neuspješno': 0
},
'pogoci': {
'ukupno': {
'vrijednost': 17,
'odnos': 'eq'
},
'max_score': nula,
'pogoci': []
}

}

Zatim, jednostavna skripta može ukloniti ciljno polje iz dokumenta. Započnite prijavom na svoju Kibana konzolu i pokrenite naredbu:

curl -XPOST 'http://localhost:9200/kibana_sample_data_logs/_update/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: izvješćivanje' -H 'Vrsta sadržaja: aplikacija/json' -d'
{
'skripta': 'ctx._source.remove('\''ip'\'')'
}'

Gore navedeni zahtjev koristi bezbolnu kontekstnu skriptu za ažuriranje dokumenta i uklanjanje polja 'ip' s navedenim ID-om.

Izlaz:

{
'_index': 'kibana_sample_data_logs',
'_id': '5pA49IIBkTjaZ6TtsiB5',
'_verzija': 2,
'rezultat': 'ažurirano',
'_krhotine': {
'ukupno': 2,
'uspješan': 2,
'neuspješno': 0
},
'_seq_no': 14074,
'_primarni_pojam': 1
}

Kada se dokument ažurira, možete potvrditi pokretanjem upita.:

curl -XGET 'http://localhost:9200/kibana_sample_data_logs/_doc/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: izvješćivanje'

Gornji zahtjev trebao bi vratiti podatke pohranjene u dokumentu s navedenim ID-om.

Možemo potvrditi da IP polje više nije u dokumentu.

Zaključak

U ovom ste članku naučili kako koristiti mogućnosti skriptiranja Elasticsearcha za uklanjanje polja iz postojećeg dokumenta.

Hvala na čitanju!!