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 permite atualizar um documento fornecendo um script que modifica o código-fonte do documento. Você pode usar esta API para excluir um campo de um documento, definindo o campo como nulo. Aqui está um guia passo a passo de 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
Se você deseja excluir um campo de todos os documentos em um índice, pode usar a API Reindex para criar um novo índice com a origem modificada. Eis como fazer isso:
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: Atualização do mapeamento e reindexação
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 excluir o índice original e, se necessário, adicionar um alias ao novo índice com o mesmo 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.




