Не удалось найти объект с помощью RealtimeSignalProcessor
Я настраиваю все свои проекты с стогом сена 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 ответ
Где-то в вашем коде плагины регистрируются с помощью поиска. Aldryn Search сам по себе не регистрирует плагины в поиске, вместо этого он регистрирует переводы страниц и оттуда выводит плагины и сохраняет их как контент перевода страниц, но только плагины никогда не индексируются.
Поскольку плагины регистрируются напрямую, вы столкнетесь с множеством проблем при индексировании в реальном времени, поскольку плагины добавляются и удаляются при различных операциях.
то есть. Когда вы публикуете страницу, все плагины в общедоступной версии страницы удаляются, а затем воссоздаются из плагинов в черновой версии.