Realtimesearchindex HayStack вызывает Django, чтобы повесить на ввод данных
-
24-09-2019 - |
Вопрос
Я использую Django-Haystack и Xapian Backend с индексацией в реальном времени (haystack.indexes.RealTimeSearchIndexing
) моделей данных, и он работает нормально на моем сервере Ubuntu. Однако он вызывает Django, чтобы повесить после ввода данных, когда я развернул приложение на сервере RHEL5.
Всем голодная Дори, если я переключаюсь на стандарт SearchIndex
.
Бег ./manage.py rebuild_index
Вручную тоже хорошо работает.
Основные различия между двумя установками были бы версиями Python (2,4,3 против 2.6.4) и ксапиан (1,0,4-1 против 1.0.15).
Любые предложения о том, что может быть проблемой?
Ничего интересного не появляется в журналах, и я пробовал разные базы данных (mysql, sqlite3) и методы развертывания (mod_python, wsgi), пока не повезло.
Я отметил предупреждение на документах HayStack, заявив, что RealTimeSearchIndex
Обрабатывается только изящно только с Backend Solr, однако я бегу очень низкий трафик с только случайными пишетами, поэтому я в порядке с некоторыми накладными расходами CPU на пишете.
Решение
Установка ксиана-сердечника и привязки ксапана от источника решили проблему.
Я изначально использовал RPM Packages предоставленные здесь.
Другие советы
Обратите внимание на это от автора Xapian-HayStack:
Поскольку XAPIAN не поддерживает одновременные соединения Writabledatabase, настоятельно рекомендуется использовать пользователи при использовании RealtimeseArcindex для установки процессов WSGidaemonProcess = 1 или использовать какой-то другой способ обеспечения того, чтобы не было несколько попыток записи в индексы. Альтернативно, используйте SCOURTINDEX и CRONJOB для контента Reindex в заданных временных интервалах (образец Cronjob можно найти здесь http://gist.github.com/216247.) или вывести свой собственный поиск, чтобы реализовать какую-то другую форму сохранения ваших индексов в курсе.