Archive for the ‘sphinx’ tag
Thinking Sphinx и runit
Thinking Sphinx является, пожалуй, наилучшим способом использовать Sphinx в Rails-приложении, но предлагаемый по-умолчанию вариант его запуска (rake thinking_sphinx:start) несколько сомнителен для production окружения. Как раз тут приходит на помощь runit.
Супервизор runit - идеальный способ для запуска и управления своими сервисами. Он реализует такой функционал, как:
- превращение любого процесса в демон;
- логирование вывода процесса и ротирование логов;
- запуск, остановка, рестарт, запрос состояния, управляющие скрипты для init.d;
- выключение и запуск сервисов автоматически при появлении новых сервисов в списке либо удалении старых из списка;
- возможность ведения нескольких независимых списков сервисов одновременно (например, для каждого пользователя отдельно и для системы в целом);
- удобный API для управления сервисами.
Звучит отлично! Но как же запустить через него наш Sphinx?
Установка Sphinx на Debian Lenny
Sphinx вероятно самый мощный и быстрый из всех открытых движков полнотекстового поиска. Особенно удобен тем, что имеет прямую интеграцию с популярными базами данных и поддерживает развитые возможности поиска, включая ранжирование и стемминг для русского и английского языка. Поддерживаются и нетривиальные возможности вроде распределённого поиска и кластеризации, однако фирменной фичей является очень и очень высокая скорость индексации и поиска, а также способность отлично распараллеливаться и утилизировать ресурсы современных серверов.
Скачиваем исходники со страницы загрузок Sphinx, распаковываем и переходим в директорию с ними:
tar xzf sphinx-0.9.9.tar.gz
cd sphinx-0.9.9
Поддержка баз данных регулируется параметрами configure:
--with[out]-mysql- по-умолчанию--with-mysql--with[out]-pgsql- по-умолчанию--without-pgsql
Так, например, если необходимо скомпилировать Sphinx с поддержкой PostgreSQL, но без MySQL, то конфигурируем так: