python - example - Actualización de un índice de búsqueda Haystack con Django+Apio
django taggit (4)
En mi proyecto Django, estoy usando Apio. Cambié un comando de crontab para que sea una tarea periódica y funciona bien, pero solo está llamando a un método en un modelo. ¿Es posible actualizar mi índice Haystack de una tarea periódica también? ¿Alguien ha hecho esto?
/manage.py update_index
Ese es el comando para actualizar el índice de la documentación Haystack pero no estoy seguro de cómo llamarlo desde una tarea.
Además, desde la versión 2 del pajar, puede llamar al índice de reconstrucción de python como
from haystack.management.commands import update_index, rebuild_index
rebuild_index.Command().handle(interactive=False)
Donde el " interactivo " evitaría que el pajar haga la pregunta si realmente quiere reconstruir el índice. Esto es equivalente a la opción de línea de comando --no-input.
Si usa xapian como backend FTS, recuerde que las actualizaciones multiproceso al índice darían como resultado DB Write Lock. Por lo tanto, la solución con el paquete apio-pajar intenta difundir la actualización del índice en varios trabajadores (múltiples hilos) dando como resultado el bloqueo con xapian.
En cuanto a la versión 2.0.0 beta de haystack, este código debería funcionar:
from haystack.management.commands import update_index
update_index.Command().handle(using=''default'')
la forma más sencilla de hacer esto sería ejecutar el comando de administración directamente desde python y ejecutarlo en su tarea
from haystack.management.commands import update_index
update_index.Command().handle()
https://github.com/django-haystack/celery-haystack
Considero que este paquete es una aplicación plug-in excelente y fácil de usar para proporcionar indexación de pajar a través de apio. Lo usé en algunos proyectos.