Um índice de pesquisa ou índices Elasticsearch é (são) uma estrutura de dados que contém mapeamentos para vários documentos. Em um banco de dados relacional, um índice pode se referir a um banco de dados específico.
Um cluster Elasticsearch contém vários índices, incluindo vários tipos, que seguram os documentos.
O seguinte pode representar o relacionamento Elasticsearch com um banco de dados relacional.
Neste guia, discutiremos vários métodos para renomear um Índice de Elasticsearch existente.
Método 1: Reindexing
O primeiro método que podemos usar ao renomear um índice é a API de reindexação. Esta API permite copiar documentos de um índice de origem para um índice de destino especificado.
No entanto, a API do Reindex não copia a configuração do índice de origem para o destino. Portanto, temos que configurar o índice de destino e aplicar a configuração do índice de origem antes de chamar o Reindex.
Podemos implementar uma operação completa do rei-index seguindo as etapas, conforme descrito abaixo:
Se você tem um índice de elasticsearch existente, fique à vontade para pular para a etapa 2
OBSERVAÇÃO: Neste guia, forneceremos todas as solicitações de pesquisa do Elasticsearch para Curl.
Etapa 1: Crie um novo índice
Vamos criar um índice que atue como fonte. Para simplificar, usaremos uma configuração simples de índice com a maioria dos parâmetros padrão.
Acenderemos um pedido ao Elasticsearch HTTP Endpoint.
Uma solicitação de exemplo para criar um índice "Test-Index" está abaixo:
Curl -xput "http: // localhost: 9200/test -index" -h 'content -type: Application/json' -d 'O próximo passo é adicionar dados ao índice criado. Por padrão, o índice não contém nenhum documento.
Curl -xget http: // localhost: 9200/_cat/índices/test -index \?vPara adicionar dados ao índice, execute a solicitação como:
A solicitação acima deve criar um documento no índice de teste-índice.
Podemos verificar se o documento existe usando a solicitação GET no ponto de extremidade do índice.
Curl -xget "http: // lochost: 9200/test -index/_search" -h 'content -type: Application/json' -d 'Um exemplo de saída é o ANS mostrado:
Etapa 2: buscar configuração de fonte
A próxima etapa antes de executar uma operação de reindex é copiar a configuração do índice de origem.
Começaremos obtendo a configuração do índice. Para fazer isso, enviamos uma solicitação HTTP para a API _Setting.
Configurações = $ (Curl -xget "https: // localhost: 9200/test -index/_settings")Salvamos a saída em uma variável que podemos verificar usando o comando:
ECHO $ Configurações | JQComo a saída está no formato JSON, passamos a um processador JSON como JQ. Um exemplo de saída é como mostrado:
O próximo passo é obter o mapeamento do índice. Nesse caso, enviaremos uma solicitação GET para o ponto final _Mapping como:
Mapping = $ (Curl -xget "https: // localhost: 9200/test -index/_mapping")Verifique se a saída é salva na variável:
eco $ mapeamento | JQA saída é como mostrado:
Em seguida, combine a saída da configuração $ e do mapeamento $ para um único formato JSON.
A seguir, é apresentada uma captura de tela truncada de ambas as saídas combinadas (Config.json).
Etapa 3: Crie um novo índice
Agora é hora de criar um novo índice com a configuração de salvamento. Verifique se sua configuração não contém erros.
Execute o comando como:
Curl -xput "http: // localhost: 9200/renomeado -index" -h 'content -type: Application/json' -D Config.JSON 'A seguir, o conteúdo da configuração, o arquivo JSON usado neste tutorial.
Após a criação bem -sucedida, você deve ver reconhecido: verdadeiro como mostrado:
Etapa 4: Reindex
Agora que temos um índice renomeado semelhante ao índice de origem, podemos copiar dados da fonte para o destino usando a API do Reindex.
Depois de fazer a solicitação do Reindex, o Elasticsearch copiará os dados do índice de origem especificado para o índice de destino.
Aqui está um exemplo de saída:
Etapa 5: Excluir índice de fonte
Não faz sentido ter dois índices com configuração e dados semelhantes. Portanto, podemos soltar o índice de origem:
Método 2: Clone API
A segunda e mais fácil maneira de renomear e indexar é usar a API do clone introduzida no Elasticsearch versão 7.4 e acima.
Para usar a API do clone, você deve garantir que o índice de origem seja somente leitura e a saúde do cluster é verde.
Como funciona a clonagem
A clonagem funciona da seguinte maneira:
Etapa 1: Defina o índice de origem como somente leitura
Para definir o índice de origem como o modo somente leitura, usamos a API _Settings e passamos as informações, conforme mostrado na solicitação abaixo:
Etapa 2: Índice de origem do clone para o alvo
Para clonar o índice de teste para um novo índice chamado Renomed-Cled-Index, podemos executar a solicitação como mostrado:
Curl -xpost “http: // localhost: 9200/teste-índice/_clone/renomeado clonado-índice”
Supondo que os seguintes requisitos sejam verdadeiros, você deve ter um índice renomeado do índice de origem.
Conclusão
Neste guia, abordamos como renomear um índice Elasticsearch usando dois métodos.
Obrigado pela leitura!