Excluindo um campo de um documento no Elasticsearch

Saiba como excluir campos de documentos do Elasticsearch usando a API de atualização, scripts ou reindexação para remoções únicas e em massa.

Novo no Elasticsearch? Participe do nosso webinar Introdução ao Elasticsearch. Você também pode iniciar um teste gratuito na nuvem do Elastic ou experimentar o Elastic em sua máquina agora.

No Elasticsearch, é comum precisar excluir um campo de um documento. Isso pode ser útil quando você deseja remover informações desnecessárias ou desatualizadas do seu índice. Neste artigo, discutiremos diferentes métodos para excluir um campo de um documento no Elasticsearch, juntamente com exemplos e instruções passo a passo.

Método 1: Usando a API de atualização

A API de atualização fornece um script que modifica a origem de um documento para atualizar o documento. Você pode usar essa API para apagar o campo de um documento, bastando deixar o campo como "null". Veja como fazer isso:

1. Identifique o índice, o tipo de documento (se estiver usando o Elasticsearch 6.x ou anterior) e o ID do documento que você deseja atualizar.

2. Utilize a API de atualização com um script que defina o campo como nulo ou, melhor ainda, que o remova do documento de origem. O exemplo a seguir demonstra como excluir o campo “field_to_delete” de um documento com ID “1” no índice “my_index”:

3. Execute a solicitação. Se a operação for bem-sucedida, o Elasticsearch retornará uma resposta indicando que o documento foi atualizado.

Nota: Este método apenas remove o campo do documento especificado. O campo ainda existirá no mapeamento e em outros documentos do índice.

Método 2: Reindexação com uma fonte modificada

Para apagar um campo de todos os documentos em um índice, você pode usar a API de reindexação para criar um novo índice com a fonte modificada. Veja como:

1. Crie um novo índice com as mesmas configurações e mapeamentos do índice original. Você pode usar a API Get Index para recuperar as configurações e os mapeamentos do índice original.

2. Utilize a API Reindex para copiar documentos do índice original para o novo índice, removendo o campo da origem. O exemplo a seguir demonstra como excluir o campo “field_to_delete” de todos os documentos no índice “my_index”:


3. Verifique se o novo índice contém os documentos corretos com o campo removido.

4. Se tudo estiver correto, você pode excluir o índice original e, se necessário, adicionar um alias ao novo índice com o mesmo nome do índice original.

Método 3: atualizando o mapeamento e reindexando

Se você deseja excluir um campo do mapeamento e todos os documentos em um índice, pode atualizar o mapeamento e, em seguida, reindexar os documentos. Eis como fazer isso:

1. Crie um novo índice com as mesmas configurações do índice original.

2. Recupere os mapeamentos do índice original usando a API Get Mapping.

3. Modifique os mapeamentos removendo o campo que deseja excluir.

4. Aplique os mapeamentos modificados ao novo índice usando a API Put Mapping.

5. Utilize a API Reindex para copiar documentos do índice original para o novo índice, conforme descrito no Método 2.

6. Verifique se o novo índice contém os documentos corretos com o campo removido e se o campo não está presente no mapeamento.

7. Se tudo estiver correto, você pode apagar o índice original e, se necessário, adicionar um alias ao novo índice com o nome do índice original.

Conclusão

Neste artigo, discutimos três métodos para excluir um campo de um documento no Elasticsearch: usando a API de atualização, reindexando com uma fonte modificada e atualizando o mapeamento e reindexando. Cada método tem seus próprios casos de uso e vantagens e desvantagens, portanto, escolha aquele que melhor se adapta às suas necessidades. Lembre-se sempre de testar as alterações e verificar os resultados antes de aplicá-las em ambientes de produção.

Perguntas frequentes

O que é a API de atualização?

Uma API que permite atualizar um documento fornecendo um script que modifica o código-fonte do documento, tais como definir um campo como nulo ou removê-lo.

O que é a API Reindex?

uma API usada para copiar documentos de um índice original para um novo índice de destino enquanto modifica a fonte (como remover um campo) durante a transição.

O que é mapeamento?

É a estrutura definida de um índice; para excluir completamente um campo de um índice, você precisa modificar os mapeamentos removendo o campo e depois reindexando.

Quais são os benefícios de excluir campos em documentos do Elasticsearch?

Excluir campos em documentos do Elasticsearch é útil quando você quer remover informações desnecessárias ou desatualizadas do índice.

Conteúdo relacionado

Pronto para criar buscas de última geração?

Uma pesquisa suficientemente avançada não se consegue apenas com o esforço de uma só pessoa. O Elasticsearch é impulsionado por cientistas de dados, especialistas em operações de aprendizado de máquina, engenheiros e muitos outros que são tão apaixonados por buscas quanto você. Vamos nos conectar e trabalhar juntos para construir a experiência de busca mágica que lhe trará os resultados desejados.

Experimente você mesmo(a)