Elasticsearch Fjern feltet

Elasticsearch Fjern feltet

"Når du jobber med elastikkindekser, kan du møte et forekomst der du trenger å 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 Document Update API og passere et skript som lar oss fjerne et felt basert på navnet.”

MERK: Denne prosessen krever at du har grunnleggende kunnskap om Elasticsearch Scripting og Document Update 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 bra å sikre at måldokumentet eksisterer i indeksen.

Vi kan bruke Search API til å 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 til illustrasjonsformål. Du kan bruke forskjellige 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 "innholdstype: applikasjon/json" -d '

"Størrelse": 0,
"spørring": "match":
"IP": "171.24.97.162 "

'

Resulterende utgang:


"Tok": 3,
"TIMED_OUT": FALSE,
"_Shards":
"Totalt": 1,
"Vellykket": 1,
"hoppet over": 0,
"Mislykket": 0
,
"Hits":
"Total":
"Verdi": 17,
"Relasjon": "Eq"
,
"Max_score": NULL,
"Hits": []

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

Curl -xpost "http: // localhost: 9200/kibana_sample_data_logs/_update/5pa49iibktjaz6ttsib5" -h "kbn -xsrf: rapportering" -h "innholdstype: applikasjon/json" -d '

"Script": "CTX._kilde.Fjern ('\ "ip' \") ""
'

Ovennevnte forespørsel bruker et smertefritt kontekstskript for å oppdatere dokumentet og fjerne ""IP"" -feltet med den spesifiserte IDen.

Produksjon:


""_index"": ""kibana_sample_data_logs"",
""_id"": ""5pa49iibktjaz6ttsib5"",
""_versjon"": 2,
""Resultat"": ""Oppdatert"",
""_Shards"":
""Totalt"": 2,
""Vellykket"": 2,
""Mislykket"": 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 den spesifiserte ID -en.

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

Konklusjon

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

Takk for at du leste!!

"