Elasticsearch Fjern felt

Elasticsearch Fjern Felt



'Når du arbejder med Elasticearch-indekser, kan du støde på et tilfælde, hvor du skal fjerne et felt fra et eksisterende dokument. Desværre leverer Elasticsearch ikke en indbygget anmodning, vi kan bruge til at udføre den nævnte handling.

Vi kan dog bruge dokumentopdaterings-API'en og sende et script, der giver os mulighed for at fjerne et felt baseret på dets navn.'







BEMÆRK : Denne proces kræver, at du har grundlæggende viden om Elasticsearch-scripting og dokumentopdaterings-API'en. Du er velkommen til at udforske dokumenterne eller vores tutorials om emnet for at lære mere.



Lad os dykke ned.



Tjek, om dokumentet findes

Før du fjerner et felt fra et specifikt dokument, er det godt at sikre, at måldokumentet findes i indekset.





Vi kan bruge søge-API'en til at hente måldokumentet.

Antag for eksempel, at vi har indekset kibana_sample_logs_data. Vi kan søge i indekset efter et dokument, der indeholder en specifik IP.



BEMÆRK : Ovenstående eksempel bruges kun til illustrationsformål. Du kan bruge forskellige metoder til at kontrollere, om et specifikt dokument er tilgængeligt i indekset.

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 output:

{
'tog': 3,
'timed_out': falsk,
'_shards': {
'i alt': 1,
'succesfuld': 1,
'sprunget over': 0,
'mislykkedes': 0
},
'hits': {
'i alt': {
'værdi': 17,
'relation': 'eq'
},
'max_score': null,
'hits': []
}

}

Dernæst kan et simpelt script fjerne et målfelt fra dokumentet. Start med at logge ind på din Kibana-konsol og kø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'\'')'
}'

Ovenstående anmodning bruger et smertefrit kontekstscript til at opdatere dokumentet og fjerne 'ip'-feltet med det angivne ID.

Produktion:

{
'_index': 'kibana_sample_data_logs',
'_id': '5pA49IIBkTjaZ6TtsiB5',
'_version': 2,
'result': 'opdateret',
'_shards': {
'i alt': 2,
'succesfuld': 2,
'mislykkedes': 0
},
'_seq_no': 14074,
'_primary_term': 1
}

Når dokumentet er opdateret, kan du bekræfte det ved at køre forespørgslen.:

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

Anmodningen ovenfor skal returnere de data, der er gemt i dokumentet med det angivne ID.

Vi kan bekræfte, at IP-feltet ikke længere er i dokumentet.

Konklusion

I denne artikel lærte du, hvordan du bruger Elasticsearch-scriptfunktioner til at fjerne et felt fra et eksisterende dokument.

Tak fordi du læste med!!