OBSERVAÇÃO: Para realizar alterações em um índice, verifique se você tem os privilégios de gerenciamento no índice de destino.
Uso básico
Para modificar um tipo de campo, envie uma solicitação de put para a API _Mapping seguida pelo corpo da solicitação. O corpo de solicitação inclui o parâmetro de propriedades e o mapeamento do campo de destino. Ao criar um novo campo, verifique se você inclui o nome do campo, tipo e parâmetros de mapeamento.
Por exemplo, a solicitação a seguir altera o tipo de campo de inteiro para longo.
Put /my-index /_mappingApós a conclusão bem -sucedida, você deve ver uma saída como:
REINIDEXO Método
Na maioria dos casos, o Elasticsearch impedirá que você atualize o tipo de campo de um índice existente. Fazer isso pode levar os dados atuais a se tornarem inválidos e causar erros no índice.
Se você ainda deseja atualizar o tipo de campo existente, pode fazê -lo em algumas etapas simples.
O uso deste método permite reduzir o tempo mínimo de inatividade para o seu índice.
Criando um índice antigo
Vamos começar criando um índice com o tipo de campo incorreto.
Put /mude-meNo exemplo acima, temos um índice simples com os dois campos: ID e nome de usuário. Os tipos de campo são inteiros e texto, respectivamente.
Vamos assumir que o campo contém dados, como mostrado na consulta a seguir:
Post /alteração-me /_doc
As duas consultas acima criarão um documento com os dados conforme fornecido no corpo de solicitação.
Verifique se os dados existem:
Get /Change-Me /_Search?bonitoDevemos ver os dois registros como mostrado:
Crie um novo índice
Digamos que queremos mudar o campo de identificação de um número inteiro para uma palavra -chave. Começaremos criando um novo índice com o tipo como palavras -chave.
Put /Change-Me-ReindexNa solicitação acima, criamos um novo índice e definimos o tipo de identificação como uma palavra -chave.
Reiniciar os dados antigos
A próxima etapa é reiniciar os dados do índice antigo para o novo usando a API _ reindex. O pedido para isso está abaixo:
Post /_reindexA solicitação acima copiará os documentos do índice antigo para o novo, onde o tipo de campo muda de um número inteiro para uma palavra -chave.
Saída da consulta acima:
Exclua o índice antigo
Agora que temos um índice atualizado com o mapeamento correto, é hora de remover o índice antigo. Podemos fazer isso enviando uma solicitação de exclusão ao índice como:
Exclua /altere-meApós a remoção bem -sucedida, você deve ver uma saída como:
Crie alias de índice
Se você tivesse aplicativos usando o índice antigo, eles podem parar de funcionar, pois não existe mais.
Podemos resolver isso criando um alias para o novo índice com o nome do antigo índice.
Put/alteração-me-reindex/_alias/alteração-meA solicitação acima deve criar um alias para o novo índice.
Conclusão
Neste guia, você descobriu como alterar o tipo de campo existente em um índice Elasticsearch.