Elasticsearch Fjern felt

Elasticsearch Fjern Felt



'Når du arbeider med Elasticearch-indekser, kan du støte på et tilfelle hvor du må fjerne et felt fra et eksisterende dokument. Dessverre gir ikke Elasticsearch en innfødt forespørsel vi kan bruke til å utføre nevnte handling.

Vi kan imidlertid bruke API for dokumentoppdatering og sende et skript som lar oss fjerne et felt basert på navnet.»







MERK : Denne prosessen krever at du har grunnleggende kunnskap om Elasticsearch-skripting og dokumentoppdaterings-API. Utforsk gjerne dokumentene eller veiledningene våre om emnet for å lære mer.



La oss dykke inn.



Sjekk om dokumentet eksisterer

Før du fjerner et felt fra et spesifikt dokument, er det greit å sikre at måldokumentet finnes i indeksen.





Vi kan bruke søke-API for å hente måldokumentet.

Anta for eksempel at vi har kibana_sample_logs_data-indeksen. Vi kan søke i indeksen etter et dokument som inneholder en spesifikk IP.



MERK : Eksemplet ovenfor brukes kun for illustrasjonsformål. Du kan bruke ulike metoder for å bekrefte om et spesifikt dokument er tilgjengelig i indeksen.

curl -XGET 'http://localhost:9200/kibana_sample_data_logs/_search' -H 'kbn-xsrf: rapportering' -H 'Content-Type: application/json' -d'
{
'størrelse': 0,
'query': {'match': {
'ip': '171.24.97.162'
}}
}'

Resulterende utgang:

{
'tok': 3,
'timed_out': usant,
'_shards': {
'totalt': 1,
'vellykket': 1,
'hoppet over': 0,
'mislyktes': 0
},
'treff': {
'Total': {
'verdi': 17,
'relation': 'eq'
},
'max_score': null,
'treff': []
}

}

Deretter kan et enkelt skript fjerne et målfelt fra dokumentet. Start med å logge på Kibana-konsollen og kjør kommandoen:

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

Forespørselen ovenfor bruker et smertefritt kontekstskript for å oppdatere dokumentet og fjerne 'ip'-feltet med spesifisert ID.

Produksjon:

{
'_index': 'kibana_sample_data_logs',
'_id': '5pA49IIBkTjaZ6TtsiB5',
'_version': 2,
'result': 'oppdatert',
'_shards': {
'totalt': 2,
'vellykket': 2,
'mislyktes': 0
},
'_seq_no': 14074,
'_primary_term': 1
}

Når dokumentet er oppdatert, kan du bekrefte ved å kjøre spørringen.:

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

Forespørselen ovenfor skal returnere dataene som er lagret i dokumentet med spesifisert ID.

Vi kan bekrefte at IP-feltet ikke lenger er i dokumentet.

Konklusjon

I denne artikkelen lærte du hvordan du bruker Elasticsearch-skriptfunksjoner for å fjerne et felt fra et eksisterende dokument.

Takk for at du leste!!