Cuando está modificando los datos en un índice de elasticsearch, puede conducir al tiempo de inactividad a medida que se completa la funcionalidad y los datos se reintegran.
Este tutorial le dará una forma mucho mejor de actualizar los índices sin experimentar ningún tiempo de inactividad con la fuente de datos existente. Usando la API de reintegración de ElasticSearch, copiaremos datos de una fuente específica a otra.
Empecemos.
NOTA: Antes de comenzar, las operaciones de reintegración son pesadas de recursos, especialmente en grandes índices. Para minimizar el tiempo requerido para reindexarse, deshabilite number_of_replicas estableciendo el valor en 0 y habilitarlos una vez que el proceso esté completo.
Habilitar el campo _surce
La operación de reindexación requiere que el campo de origen se habilite en todos los documentos en el índice de origen. Tenga en cuenta que el campo de origen no está indexado y no se puede buscar, pero es útil para varias solicitudes.
Habilite el campo _source agregando una entrada como se muestra a continuación:
Poner index_1Reindex todos los documentos
Para reindex documentos, necesitamos especificar la fuente y el destino. El origen y el destino pueden ser un índice, alias de índice y flujos de datos existentes. Puede usar índices del clúster local o remoto.
NOTA: Para que la indexación ocurra con éxito, tanto la fuente como el destino no pueden ser similares. También debe configurar el destino según sea necesario antes de reindexarse porque no aplica la configuración desde la fuente o cualquier plantilla asociada.
La sintaxis general para reindexarse es como:
Post /_reindexComencemos creando dos índices. El primero será la fuente, y la otra será el destino.
Poner /fuente_indexEl comando curl es:
curl -xput "http: // localhost: 9200/fuente_index" -h 'content -type: application/json' -d '"configuración": "number_of_replicas": 0, "number_of_shards": 1, "asignaciones" " : "_source": "habilitado": true, "alias": "alias_1": , "alias_2": "filtro": "término: " usuario.id ":" kibana "," enrutamiento ":" 1 " 'Ahora para el índice de destino (puede usar el comando anterior y cambiar algunas cosas o usar la que se da a continuación):
PUT /Destino_indexComo siempre, los usuarios de curl pueden usar el comando:
curl -xput "http: // localhost: 9200/destacado_index" -h 'content -type: application/json' -d '"configuración": "number_of_replicas": 0, "number_of_shards": 1, "asignaciones" " : "_source": "habilitado": true, "alias": "alias_3": , "alias_4": "filtro": "término: " usuario.id ":" kibana "," enrutamiento ":" 1 " 'Ahora, tenemos los índices que queremos usar, podemos pasar a reindexar los documentos.
Considere la solicitud a continuación que copia los datos de Source_Index a Destination_index:
Publicar _reindexEl comando curl para esto es:
curl -xpost "http: // localhost: 9200/_reindex" -h 'content -type: application/json' -d '"fuente": "index": ".Kibana "," Dest ": " índice ":" Destino_index " 'Ejecución de este comando debe brindarle información detallada sobre la operación realizada.
NOTA: El Source_Index debe tener datos.
Verificación de estado de reindexación
Puede ver el estado de las operaciones de reindexación simplemente usando las tartas. Por ejemplo, considere la siguiente solicitud:
Get /_Tasks?detallado = true & acciones =*reindex & group_by = padresEl comando curl es:
curl -xget "http: // localhost: 9200/_Tasks?detallado = true & acciones =*reindex & group_by = padres "Eso debería brindarle información detallada sobre el proceso de reintegración como se muestra a continuación:
Conclusión
Hemos cubierto todo lo que necesita saber sobre el uso de la API de reindexación de Elasticsearch para copiar documentos de un índice (fuente) a otro (destino). Aunque hay más en la API de reindexación, esta guía debería ayudarlo a comenzar.