Elasticsearch remover campo

Elasticsearch remover campo

“Ao trabalhar com os índices de pesquisa elástica, você pode encontrar uma instância em que precisa remover um campo de um documento existente. Infelizmente, o Elasticsearch não fornece uma solicitação nativa que podemos usar para executar a ação referida.

Podemos, no entanto, usar a API de atualização de documentos e passar um script que nos permite remover um campo com base no nome.”

OBSERVAÇÃO: Este processo exige que você tenha conhecimento básico do Elasticsearch Script e a API de atualização de documentos. Sinta -se à vontade para explorar os documentos ou nossos tutoriais sobre o assunto para saber mais.

Vamos mergulhar.

Verifique se o documento existe

Antes de remover um campo de um documento específico, é bom garantir que o documento de destino exista dentro do índice.

Podemos usar a API de pesquisa para buscar o documento de destino.

Por exemplo, suponha que tenhamos o Índice Kibana_sample_logs_data. Podemos pesquisar no índice um documento que contém um IP específico.

OBSERVAÇÃO: O exemplo acima é usado apenas para fins de ilustração. Você pode usar vários métodos para verificar se um documento específico está disponível no índice.

Curl -xget "http: // localhost: 9200/kibana_sample_data_logs/_search" -h "kbn -xsrf: relatórios" -h "conteúdo: aplicativo/json" -d '

"Tamanho": 0,
"Query": "Match":
"IP": "171.24.97.162 "

'

Saída resultante:


"Take": 3,
"timed_out": false,
"_shards":
"Total": 1,
"bem -sucedido": 1,
"Salpado": 0,
"falhou": 0
,
"exitos":
"Total":
"Valor": 17,
"Relacionamento": "Eq"
,
"max_score": nulo,
"exitos": []

Em seguida, um script simples pode remover um campo de destino do documento. Comece fazendo login no seu console Kibana e execute o comando:

Curl -xpost "http: // localhost: 9200/kibana_sample_data_logs/_update/5pa49iibktjaz6ttsib5" -h "kbn -xsrf: relatórios" -h "content -type: aplicação/json" --d

"script": "ctx._fonte.Remover ('\ "ip' \") ""
'

A solicitação acima usa um script de contexto indolor para atualizar o documento e remover o campo ""IP"" com o ID especificado.

Saída:


""_index"": ""kibana_sample_data_logs"",
""_id"": ""5pa49iibktjaz6ttsib5"",
""_versão 2,
""Resultado"": ""Atualizado"",
""_shards"":
""Total"": 2,
""bem -sucedido"": 2,
""falhou"": 0
,
""_seq_no"": 14074,
""_Primary_term"": 1

Depois que o documento for atualizado, você pode verificar executando a consulta.:

Curl -xget ""http: // localhost: 9200/kibana_sample_data_logs/_doc/5pa49iibktjaz6ttsib5"" -h ""kbn -xsrf: reporting""

A solicitação acima deve retornar os dados armazenados no documento com o ID especificado.

Podemos verificar se o campo IP não está mais no documento.

Conclusão

Neste artigo, você aprendeu a usar os recursos de script do Elasticsearch para remover um campo de um documento existente.

Obrigado pela leitura!!

"