Elasticsearch Reindex no lugar

Elasticsearch Reindex no lugar
Elasticsearch Indexing é um recurso importante que permite que o motor tenha um desempenho rápido e com precisão.

No entanto, como você sabe, uma vez que os dados são mapeados em um índice, não é modificável. Para fazer isso, você precisará reindexar os dados com as modificações necessárias. Esse processo pode levar ao tempo de inatividade, o que não é uma prática muito boa, especialmente para um serviço que já está em circulação.

Para contornar isso, podemos usar aliases de índice, que nos permitem alternar entre os índices sem problemas.

Como criar um índice?

O primeiro passo é garantir que você tenha um índice existente que você deseja atualizar os dados.

Para este tutorial, teremos um índice antigo e novo que funcionará como seus nomes.

Put /Old_index /

"configurações":
"number_of_shards": 1
,
"apelido":
"use_me":
,
"Mapeamentos":
"Propriedades":
"nome":
"Tipo": "texto"
,
"eu ia":
"Tipo": "Inteiro"
,
"pago":
"Tipo": "booleano"



Para usuários de curl, use o comando anexado:

Curl -xput "http: // localhost: 9200/old_index/" -h 'content -type: Application/json' -d '"Settings": "number_of_shards": 1, "aliases": "use_me" : , "mapeamentos": "Propriedades": "name": "type": "text", "id": "type": "integer", "pago": "tipo ": "boleano" '

Em seguida, crie um novo índice que vamos usar. Copie todas as configurações e mapeamentos do índice antigo como:

Put /new_index

"configurações":
"number_of_shards": 1
,
"apelido":
"use_me":
,
"Mapeamentos":
"Propriedades":
"nome":
"Tipo": "texto"
,
"eu ia":
"Tipo": "Inteiro"
,
"pago":
"Tipo": "objeto"



Aqui está o comando curl:

Curl -xput "http: // localhost: 9200/new_index" -h 'content -type: Application/json' -d '"Configurações": "number_of_shards": 1, "aliases": "use_me": , "mapeamentos": "Propriedades": "name": "type": "text", "id": "type": "integer", "pago": "tipo" : "Object" '

Tendo a configuração e os mapeamentos no novo índice, use a API do Reindex para copiar os dados do índice antigo para o novo:

Post _reindex

"fonte":
"Índice": "Old_index"
,
"dest":
"Índice": "new_index"

Aqui está o comando curl:

Curl -xpost "http:/localhost: 9200/_reindex" -h 'content -type: Application/json' -d '"fonte": "index": "Old_index", "dest": "index" : "new_index" '

Agora, copie o alias do índice antigo para o novo usando a API _Alias ​​como:

Post /_aliases

"ações" : [
"add": "index": "new_index", "Alias": "use_me"
]

Aqui está o comando curl:

Curl -xpost "http: // localhost: 9200/_aliases" -h 'content -type: Application/json' -d '"ações": ["add": "index": "new_index", " ":" use_me "] '

Depois de concluído, agora você pode remover o índice antigo e os aplicativos usarão o novo índice (devido ao alias) sem tempo de inatividade.

Conclusão

Depois de dominar os conceitos discutidos neste tutorial, você estará em posição de reindex os dados de um índice antigo para um novo no lugar.