使用RealtimeSignalProcessor无法找到对象

时间:2017-03-31 03:14:24

标签: django-haystack django-cms

我使用haystack RealtimeSignalProcessor;

设置了所有项目

HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'

但是,当从数据库中删除对象时,我经常会看到来自搜索的错误;

Object could not be found in database for SearchResult '<SearchResult: djangocms_text_ckeditor.text (pk=u'357')>'.

这个信号处理器是否没有在索引上运行删除来摆脱旧对象?

1 个答案:

答案 0 :(得分:1)

在代码中的某处,插件正在搜索中注册。 Aldryn Search本身使用搜索注册插件,而是注册页面翻译,然后从那里呈现插件并将其存储为页面翻译内容,但单独的插件从不编入索引。

由于插件是直接注册的,因此实时索引会遇到很多问题,因为插件会在不同的操作下添加和删除。

即。发布页面时,页面公共版本上的所有插件都将被删除,然后从草稿版本中重新创建。