RealTimeSearchIndex из haystack приводит к зависанию django при вводе данных

Я использую django-haystack и xapian backend с индексацией в реальном времени (haystack.indexes.RealTimeSearchIndexing) данных модели, и она отлично работает на моем сервере Ubuntu. Однако это приводит к зависанию django при вводе данных, когда я развернул приложение на сервере RHEL5.

Все чертовски дорого, если я перейду на стандарт SearchIndex,

Бег ./manage.py rebuild_index Вручную тоже работает нормально.

Основными различиями между этими двумя настройками будут версии Python (2.4.3 против 2.6.4) и xapian (1.0.4-1 против 1.0.15).

Любые предложения о том, в чем может быть проблема?

Ничего интересного в журналах не появляется, и я попробовал разные базы данных (mysql, sqlite3) и методы развертывания (mod_python, wsgi), но пока безуспешно.

Я отметил предупреждение в документах о стоге сена, в котором говорится, что RealTimeSearchIndex обрабатывается только изящно с бэкэндом Solr, однако я использую сайт с очень малым трафиком и только случайные записи, так что я вполне справляюсь с некоторыми перегрузками процессора при записи.

2 ответа

Решение

Установка xapian-core и xapian-bindings из исходного кода решила проблему.

Первоначально я использовал RPM-пакеты, представленные здесь.

Обратите внимание на это от автора xapian-haystack:

Поскольку Xapian не поддерживает одновременные подключения WritableDatabase, настоятельно рекомендуется, чтобы пользователи позаботились о том, чтобы при использовании RealTimeSearchIndex установить WSGIDaemonProcess process =1 или использовать какой-либо другой способ обеспечения того, чтобы не было нескольких попыток записи в индексы. В качестве альтернативы, используйте SearchIndex и cronjob для переиндексации контента через заданные промежутки времени (образец cronjob можно найти здесь http://gist.github.com/216247) или создайте собственный SearchIndex для реализации какой-либо другой формы поддержания ваших индексов в актуальном состоянии.,

Другие вопросы по тегам