Quando você está modificando os dados em um índice de pesquisa de elasticidade, eles podem levar ao tempo de inatividade à medida que a funcionalidade é concluída e os dados são reindexados.
Este tutorial lhe dará uma maneira muito melhor de atualizar os índices sem experimentar nenhum tempo de inatividade com a fonte de dados existente. Usando a API de re-indexamento do Elasticsearch, copiaremos dados de uma fonte específica para outra.
Vamos começar.
OBSERVAÇÃO: Antes de começarmos, as operações de reindexação são pesadas de recursos, especialmente em grandes índices. Para minimizar o tempo necessário para a reindexação, desative o número_of_replicas, definindo o valor para 0 e habilitá -las assim que o processo for concluído.
Habilitar _ Campo de outores
A operação de reindexação exige que o campo de origem seja ativado em todos os documentos no índice de origem. Observe que o campo de origem não é indexado e não pode ser pesquisado, mas é útil para várias solicitações.
Ative o campo _Source, adicionando uma entrada como mostrado abaixo:
PUT INDEX_1Reindex Todos os documentos
Para os documentos do Reindex, precisamos especificar a fonte e o destino. Fonte e destino podem ser um índice existente, alias de índice e fluxos de dados. Você pode usar índices do cluster local ou remoto.
OBSERVAÇÃO: Para que a indexação ocorra com sucesso, a fonte e o destino não podem ser semelhantes. Você também deve configurar o destino conforme exigido antes da reindexação, pois ele não aplica configurações da fonte ou qualquer modelo associado.
A sintaxe geral para reindexação é como:
Post /_reindexVamos começar criando dois índices. O primeiro será a fonte, e o outro será o destino.
Put /source_indexO comando Curl é:
Curl -xput "http: // localhost: 9200/fonte_index" -h 'content -type: Application/json' -d '"Configurações": "number_of_replicas": 0, "number_of_shards": 1, "mapeamentos" : "_source": "Enabled": true, "aliases": "alias_1": , "alias_2": "filtro": "termo": "user user".id ":" kibana "," roteamento ":" 1 " ''Agora, para o índice de destino (você pode usar o comando acima e alterar algumas coisas ou usar o dado abaixo):
Put /destino_indexComo sempre, os usuários do CLL podem usar o comando:
Curl -xput "http: // localhost: 9200/destino_index" -h 'content -type: Application/json' -d '"Configurações": "number_of_replicas": 0, "number_of_shards": 1, "mapeamentos" : "_source": "Enabled": true, "aliases": "alias_3": , "alias_4": "filtro": "termo": "user user".id ":" kibana "," roteamento ":" 1 " ''Agora, temos os índices que queremos usar, podemos seguir em frente para reindexar os documentos.
Considere a solicitação abaixo que copia os dados de fonte_index para destino_index:
Post _reindexO comando Curl para este é:
Curl -xpost "http: // localhost: 9200/_reindex" -h 'content -type: application/json' -d '"fonte": "index": ".kibana "," dest ": " index ":" destination_index " 'A execução deste comando deve fornecer informações detalhadas sobre a operação realizada.
OBSERVAÇÃO: O fonte_index deve ter dados.
Verificando o status de reindexação
Você pode visualizar o status das operações de reindexação simplesmente usando as _tasks. Por exemplo, considere a solicitação abaixo:
Get /_Tasks?detalhado = true & ações =*reindex & group_by = paisO comando Curl é:
Curl -xget "http: // localhost: 9200/_Tasks?detalhado = true & ações =*reindex & group_by = pais "Isso deve fornecer informações detalhadas sobre o processo de reindexação, como mostrado abaixo:
Conclusão
Cobrimos tudo o que você precisa saber sobre o uso da API Elasticsearch Reindexing para copiar documentos de um índice (fonte) para outro (destino). Embora exista mais na API de reindexação, este guia deve ajudá -lo a começar.