Elasticsearch Mező eltávolítása

Elasticsearch Mezo Eltavolitasa



„Amikor az Elasticearch indexekkel dolgozik, előfordulhat, hogy el kell távolítania egy mezőt egy meglévő dokumentumból. Sajnos az Elasticsearch nem biztosít olyan natív kérést, amelyet az említett művelet végrehajtására használhatnánk.

Használhatjuk azonban a dokumentumfrissítési API-t, és átadhatunk egy szkriptet, amely lehetővé teszi egy mező eltávolítását a neve alapján.”







JEGYZET : Ehhez a folyamathoz alapvető ismeretekkel kell rendelkeznie az Elasticsearch szkriptekkel és a dokumentumfrissítési API-val kapcsolatban. További információért bátran fedezze fel a dokumentumokat vagy a témával kapcsolatos oktatóanyagainkat.



merüljünk bele.



Ellenőrizze, hogy létezik-e a dokumentum

Mielőtt eltávolítana egy mezőt egy adott dokumentumból, érdemes megbizonyosodni arról, hogy a céldokumentum létezik az indexben.





A kereső API-t használhatjuk a céldokumentum lekérésére.

Tegyük fel például, hogy megvan a kibana_sample_logs_data index. Az indexben kereshetünk egy adott IP-t tartalmazó dokumentumot.



JEGYZET : A fenti példa csak illusztrációként szolgál. Különféle módszerekkel ellenőrizheti, hogy egy adott dokumentum elérhető-e az indexben.

curl -XGET 'http://localhost:9200/kibana_sample_data_logs/_search' -H 'kbn-xsrf: jelentéskészítés' -H 'Tartalom típusa: alkalmazás/json' -d'
{
'méret': 0,
'query': {'egyezik': {
'ip': '171.24.97.162'
}}
}'

Az eredmény:

{
'elvette': 3,
'timed_out': hamis,
'_shards': {
'összesen': 1,
'sikeres': 1,
'kihagyott': 0,
'sikertelen': 0
},
'találatok': {
'teljes': {
'érték': 17,
'reláció': 'egyenl'
},
'max_score': null,
'találatok': []
}

}

Ezután egy egyszerű szkript eltávolíthat egy célmezőt a dokumentumból. Először jelentkezzen be Kibana konzoljába, és futtassa a parancsot:

curl -XPOST 'http://localhost:9200/kibana_sample_data_logs/_update/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: jelentéskészítés' -H 'Tartalom típusa: alkalmazás/json' -d'
{
'script': 'ctx._source.remove('\''ip'\'')'
}'

A fenti kérés fájdalommentes környezeti szkriptet használ a dokumentum frissítéséhez és az „ip” mező eltávolításához a megadott azonosítóval.

Kimenet:

{
'_index': 'kibana_sample_data_logs',
'_id': '5pA49IIBkTjaZ6TtsiB5',
'_version': 2,
'result': 'frissítve',
'_shards': {
'összesen': 2,
'sikeres': 2,
'sikertelen': 0
},
'_seq_no': 14074,
'_primary_term': 1
}

A dokumentum frissítése után a lekérdezés futtatásával ellenőrizheti:

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

A fenti kérésnek vissza kell adnia a dokumentumban tárolt adatokat a megadott azonosítóval.

Ellenőrizhetjük, hogy az IP mező már nincs a dokumentumban.

Következtetés

Ebből a cikkből megtanulta, hogyan használhatja az Elasticsearch szkriptelési képességeit egy mező eltávolítására egy meglévő dokumentumból.

Köszönöm, hogy elolvasta!!