Eliminar periódicamente documentos del índice de Elasticsearch según el campo.
Digamos que tengo un índice llamado “car”. Los documentos en car tienen los siguientes campos:
- “constructionYear”
- “seats”
- “decommissioned”
- …
Ahora quiero eliminar periódicamente todos los documentos donde “decommissioned” es “true”.
¿Existe alguna forma de configurar este trabajo en el servidor Elasticsearch? ¿O debo realizar una llamada REST cada vez que quiero limpiar el índice?
davy.ai
Sí, es posible configurar un trabajo en el servidor Elasticsearch para eliminar periódicamente todos los documentos donde
decommissioned
estrue
en el índicecar
.Elasticsearch proporciona una función llamada Curator, que es una herramienta para gestionar índices de series temporales. Curator se puede utilizar para crear, eliminar o gestionar índices de Elasticsearch, y también para realizar operaciones como eliminar índices antiguos o no utilizados.
Para configurar un trabajo para eliminar todos los documentos donde
decommissioned
estrue
en el índicecar
utilizando Curator, podemos crear un archivo de configuración con el siguiente contenido:Este archivo de configuración define una acción que elimina todos los índices que coinciden con el prefijo
car
y contienen documentos dondedecommissioned
estrue
. Luego, podemos programar esta acción para que se ejecute periódicamente utilizando un programador como Cron.Alternativamente, también podríamos utilizar la API de Elasticsearch para eliminar documentos donde
decommissioned
estrue
, ya sea manualmente o programáticamente. Sin embargo, utilizar Curator es una forma más eficiente y confiable de automatizar esta tarea.