我已经在一些Django CMS网站上设置了aldryn_search
,django-haystack
通过弹性搜索为搜索功能提供了强大功能。
在维护我的搜索索引时,我找到了实时处理器&设置它;
HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
在阅读了文档后,假设这将导致所有的保存&删除django中的信号并适当更新haystack索引。但是我看到Sentry出现错误,这表明索引中有过时的项目,所以我假设删除信号不是从索引中删除旧对象(不再是数据库中);
haystack in _get_object
Object could not be found in database for SearchResult '<SearchResult: djangocms_text_ckeditor.text (pk=u'237')>'.
在haystack中是否还有其他功能/配置选项可以避免这种情况,或者更好的做法是将celery任务定期运行以运行update_index -r
命令来维护索引?
更新
使用简单后端或弹性搜索时,只需深入信号处理器,using_backends
列表为空。这显然是我没有看到此功能按预期工作的原因。为什么这会是空的?