Elasticsearch odstrániť pole

Elasticsearch Odstranit Pole



„Pri práci s indexmi Elasticarch sa môžete stretnúť s prípadom, keď potrebujete odstrániť pole z existujúceho dokumentu. Bohužiaľ, Elasticsearch neposkytuje natívnu požiadavku, ktorú môžeme použiť na vykonanie uvedenej akcie.

Môžeme však použiť API na aktualizáciu dokumentov a odovzdať skript, ktorý nám umožní odstrániť pole na základe jeho názvu.“







POZNÁMKA : Tento proces vyžaduje, aby ste mali základné znalosti o skriptovaní Elasticsearch a API na aktualizáciu dokumentov. Neváhajte a preskúmajte dokumenty alebo naše návody na túto tému, aby ste sa dozvedeli viac.



Poďme sa ponoriť.



Skontrolujte, či dokument existuje

Pred odstránením poľa z konkrétneho dokumentu je dobré sa uistiť, že cieľový dokument existuje v indexe.





Na získanie cieľového dokumentu môžeme použiť vyhľadávacie API.

Predpokladajme napríklad, že máme index kibana_sample_logs_data. V indexe môžeme vyhľadať dokument, ktorý obsahuje konkrétnu IP.



POZNÁMKA : Vyššie uvedený príklad slúži len na ilustračné účely. Na overenie, či je konkrétny dokument dostupný v indexe, môžete použiť rôzne metódy.

curl -XGET 'http://localhost:9200/kibana_sample_data_logs/_search' -H 'kbn-xsrf: reporting' -H 'Content-Type: application/json' -d'
{
'veľkosť': 0,
'query': {'match': {
'ip': '171.24.97.162'
}}
}'

Výsledný výstup:

{
'vzal': 3,
'timed_out': nepravda,
'_shards': {
'celkom': 1,
'úspešný': 1,
'preskočené': 0,
'nepodarilo sa': 0
},
'hits': {
'Celkom': {
'value': 17,
'relation': 'eq'
},
'max_score': null,
'zásahy': []
}

}

Ďalej môže jednoduchý skript odstrániť cieľové pole z dokumentu. Začnite prihlásením sa do konzoly Kibana a spustite príkaz:

curl -XPOST 'http://localhost:9200/kibana_sample_data_logs/_update/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: reporting' -H 'Content-Type: application/json' -d'
{
'script': 'ctx._source.remove('\''ip'\'')'
}'

Vyššie uvedená požiadavka používa bezbolestný kontextový skript na aktualizáciu dokumentu a odstránenie poľa „ip“ so zadaným ID.

Výkon:

{
'_index': 'kibana_sample_data_logs',
'_id': '5pA49IIBkTjaZ6TtsiB5',
'_version': 2,
'result': 'aktualizované',
'_shards': {
'celkom': 2,
'úspešný': 2,
'nepodarilo sa': 0
},
'_seq_no': 14074,
'_primárny_výraz': 1
}

Po aktualizácii dokumentu ho môžete overiť spustením dotazu.:

curl -XGET 'http://localhost:9200/kibana_sample_data_logs/_doc/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: reporting'

Vyššie uvedená žiadosť by mala vrátiť údaje uložené v dokumente so zadaným ID.

Môžeme overiť, že pole IP už nie je v dokumente.

Záver

V tomto článku ste sa naučili, ako používať funkcie skriptovania Elasticsearch na odstránenie poľa z existujúceho dokumentu.

Vďaka za prečítanie!!