NOTA: Para realizar cambios en un índice, asegúrese de tener los privilegios de administración en el índice de destino.
Uso básico
Para modificar un tipo de campo, envíe una solicitud de poner a la API _mapping seguida del cuerpo de solicitud. El cuerpo de la solicitud incluye el parámetro de propiedades y la asignación del campo de destino. Al crear un nuevo campo, asegúrese de incluir el nombre del campo, el tipo y los parámetros de mapeo.
Por ejemplo, la siguiente solicitud cambia el tipo de campo de entero a largo.
Poner /my-index /_mappingAl finalizar con éxito, debería ver una salida como:
Método de reintegración
En la mayoría de los casos, ElasticSearch le impedirá actualizar el tipo de campo de un índice existente. Hacerlo podría hacer que los datos actuales se vuelvan inválidos y causen errores en el índice.
Si aún desea actualizar el tipo de campo existente, puede hacerlo en algunos pasos simples.
El uso de este método le permite reducir el tiempo de inactividad mínimo para su índice.
Creando un viejo índice
Comencemos creando un índice con el tipo de campo incorrecto.
Poner /cambiarEn el ejemplo anterior, tenemos un índice simple con los dos campos: ID y nombre de usuario. Los tipos de campo son enteros y texto, respectivamente.
Supongamos que el campo contiene datos como se muestra en la siguiente consulta:
Post /cambio-me /_doc
Las dos consultas anteriores crearán un documento con los datos según lo dispuesto en el cuerpo de solicitudes.
Asegúrese de que exista los datos:
Get /Change-Me /_Search?bonitoDeberíamos ver los dos registros como se muestra:
Crear un nuevo índice
Digamos que queremos cambiar el campo de identificación de un entero a una palabra clave. Comenzaremos creando un nuevo índice con el tipo como palabras clave.
Poner /cambiar me-reindexEn la solicitud anterior, creamos un nuevo índice y establecemos el tipo de identificación en una palabra clave.
Reindexa los datos antiguos
El siguiente paso es volver a indicar los datos del índice anterior al nuevo utilizando la API de reintegración _. La solicitud de eso está a continuación:
Post /_reindexLa solicitud anterior copiará los documentos del índice anterior al nuevo donde el tipo de campo cambia de un entero a una palabra clave.
Salida de la consulta anterior:
Eliminar el antiguo índice
Ahora que tenemos un índice actualizado con la asignación correcta, es hora de eliminar el índice anterior. Podemos hacer esto enviando una solicitud de eliminación al índice como:
Eliminar /cambiarTras la extracción exitosa, debería ver una salida como:
Crear alias de índice
Si tuviera aplicaciones utilizando el índice anterior, podrían dejar de funcionar ya que ya no existe.
Podemos resolver esto creando un alias para el nuevo índice con el nombre del antiguo índice.
Poner/cambio-me-reindex/_alias/cambio-meLa solicitud anterior debe crear un alias para el nuevo índice.
Conclusión
En esta guía, descubrió cómo cambiar el tipo de campo existente en un índice de ElasticSearch.