Elasticsearch reindex en su lugar

Elasticsearch reindex en su lugar
La indexación de ElasticSearch es una característica importante que permite que el motor funcione rápido y con precisión.

Sin embargo, como saben, una vez que los datos se asignan en un índice, no es modificable. Para hacer esto, deberá reindexar los datos con las modificaciones que necesita. Este proceso puede conducir al tiempo de inactividad, que no es una muy buena práctica, especialmente para un servicio que ya está en circulación.

Para eludir esto, podemos usar alias de índice, que nos permiten cambiar entre los índices sin problemas.

Cómo crear un índice?

El primer paso es asegurarse de tener un índice existente que desea actualizar los datos.

Para este tutorial, tendremos un índice antiguo y nuevo que funcionará como sus nombres.

PUT /OLD_INDEX /

"ajustes":
"Number_of_shards": 1
,
"Alias":
"úsame":
,
"Mapeos":
"propiedades":
"nombre":
"teclee el texto"
,
"identificación":
"Tipo": "Integer"
,
"pagado":
"Tipo": "booleano"



Para usuarios de curl, use el comando adjunto:

curl -xput "http: // localhost: 9200/old_index/" -h 'content -type: application/json' -d '"settings": "number_of_shards": 1, "alias": "use_me" : , "asignaciones": "propiedades": "nombre": "tipo": "text", "id": "tipo": "entero", "pagado": "tipo ":" boolean " '

A continuación, cree un nuevo índice que vamos a usar. Copie todas las configuraciones y asignaciones del índice anterior como:

Poner /new_index

"ajustes":
"Number_of_shards": 1
,
"Alias":
"úsame":
,
"Mapeos":
"propiedades":
"nombre":
"teclee el texto"
,
"identificación":
"Tipo": "Integer"
,
"pagado":
"Tipo": "Objeto"



Aquí está el comando curl:

curl -xput "http: // localhost: 9200/new_index" -h 'content -type: application/json' -d '"settings": "number_of_shards": 1, "aliases": "use_me": , "asignaciones": "propiedades": "nombre": "tipo": "text", "id": "type": "entero", "pagado": "type" : "objeto" '

Tener la configuración y las asignaciones en el nuevo índice, use la API de Reindex para copiar los datos del índice anterior al nuevo:

Publicar _reindex

"fuente":
"índice": "Old_index"
,
"Dest":
"índice": "new_index"

Aquí está el comando curl:

curl -xpost "http:/localhost: 9200/_reindex" -h 'content -type: application/json' -d '"fuente": "index": "Old_index", "Dest": "índice" : "new_index" '

Ahora, copie el alias del antiguo índice al nuevo usando la API _alias como:

Post /_aliases

"Acciones": [
"agregar": "index": "new_index", "alias": "use_me"
]

Aquí está el comando curl:

curl -xpost "http: // localhost: 9200/_Aliases" -h 'content -type: application/json' -d '"Actions": ["agregar": "index": "new_index", "alias " : "úsame" ]'

Una vez completado, ahora puede eliminar el índice anterior, y las aplicaciones utilizarán el nuevo índice (debido al alias) sin tiempo de inactividad.

Conclusión

Una vez que domine los conceptos discutidos en este tutorial, estará en condiciones de reindexar los datos de un índice antiguo a uno nuevo en su lugar.