This Django app allows you to utilize Celery for automatically updating and deleting objects in a Haystack search index.
You also need to install your choice of one of the supported search engines for Haystack and one of the supported backends for Celery.
Use your favorite Python package manager to install the app from PyPI, e.g.:
pip install celery-haystack
For Django < 1.9 you need to install and configure django-transaction-hooks -- an app that brings transaction commit hooks to Django.
Add
'celery_haystack'
to theINSTALLED_APPS
settingINSTALLED_APPS = [ # .. 'celery_haystack', ]
Enable the celery-haystack signal processor in the settings
HAYSTACK_SIGNAL_PROCESSOR = 'celery_haystack.signals.CelerySignalProcessor'
Alter all of your
SearchIndex
subclasses to inherit fromcelery_haystack.indexes.CelerySearchIndex
andhaystack.indexes.Indexable
from haystack import indexes from celery_haystack.indexes import CelerySearchIndex from myapp.models import Note class NoteIndex(CelerySearchIndex, indexes.Indexable): text = indexes.CharField(document=True, model_attr='content') def get_model(self): return Note
Ensure your Celery instance is running.
This app is a blatant rip-off of Daniel Lindsley's queued_search app but uses Ask Solem Hoel's Celery_ instead of the equally awesome queues library by Matt Croyden.
Please use the Github issue tracker for any bug reports or feature requests.