Campo de remoção do Elasticsearch

Campo De Remocao Do Elasticsearch



“Ao trabalhar com índices Elasticarch, 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 possamos usar para realizar a referida ação.

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







NOTA : esse processo exige que você tenha conhecimento básico de scripts do Elasticsearch e da 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 no índice.





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

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



NOTA : O exemplo acima é usado apenas para fins ilustrativos. 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 'Tipo de conteúdo: aplicativo/json' -d'
{
'tamanho': 0,
'query': {'match': {
'ip': '171.24.97.162'
}}
}'

Saída resultante:

{
'tomou': 3,
'timed_out': falso,
'_shards': {
'total': 1,
'bem sucedido': 1,
'pulado': 0,
'falhou': 0
},
'exitos': {
'total': {
'valor': 17,
'relação': 'eq'
},
'max_score': null,
'exitos': []
}

}

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

curl -XPOST 'http://localhost:9200/kibana_sample_data_logs/_update/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: relatórios' -H 'Tipo de conteúdo: aplicativo/json' -d'
{
'script': 'ctx._source.remove('\''ip'\'')'
}'

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

Resultado:

{
'_index': 'kibana_sample_data_logs',
'_id': '5pA49IIBkTjaZ6TtsiB5',
'_versão 2,
'resultado': 'atualizado',
'_shards': {
'total': 2,
'bem sucedido': 2,
'falhou': 0
},
'_seq_no': 14074,
'_termo_primário': 1
}

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

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

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

Podemos verificar que 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 por ler!!