Данная инструкция является мануалом по настройке модуля Advanced sphinx для Drupal 6.

Что умеет данный модуль:

1. Ищет по заголовку и телу(body) материал. Поиск по другим полям и сущностям не реализован. Но возможно в ручном режиме настроить поиск по дополнительным полям ноды(инструкция по тому, как это реализовать будет написана позже).

2. Присутствует сортировка(Релевантность/Дата/Обновление).

3. Есть блок поиска, который можно вывести в нужном регионе.

4. Поиск с использованием морфологии(технология стемминга)

Технические подробности:

  1. Соединения с демоном сфинкса происходит через unix-сокет.
  2. Индексация использует в качестве источника данных - базу MySQL.

Инструкция по настройке:

При использовании мануала, нужно заменять:
uXXXX - на аккаунт клиента
имя_домена - на имя домена

  1. Зайти в домашнюю директорию своего хостинг-аккаунта с помощью ssh. Перейти в директорию domains/имя_домена/sites/all/modules/ .
  2. Скачать модуль с помощью git здесь.
  3. Включить модуль в админке сайта.
  4. Создать иерархию каталогов в своей домашней директории:
    - /home/uXXXX/sphinx
    - /home/uXXXX/sphinx/имя_домена
    - /home/uXXXX/sphinx/имя_домена/log
    - /home/uXXXX/sphinx/имя_домена/index
  5. В админке, на странице admin/settings/advanced_sphinx указываем такие параметры:
    --- Генерировать конфигурационный файл - галочка
    --- Path to confige file:  /home/uXXXX/sphinx/имя_домена
    --- Sphinx searchd host name or path to socket: 
     /home/uXXXX/sphinx/имя_домена/sphinx.s
  6. В консоли запускаем индексацию демона сфинкса с нужной конфигурацией: /usr/bin/sphinx-indexer --config /home/uXXXX/sphinx/имя_домена/sphinx.conf --all
  7. В консоли запускаем демон сфинкса: /usr/sbin/sphinx-searchd --config /home/uXXXX/sphinx/имя_домена/sphinx.conf
  8. В админке проверяем по ссылке admin/settings/advanced_sphinx/check-connection - есть ли коннект с демоном сфинкса.
  9. Проверяем работает ли поиск на странице search-content
  10. Выводим блок поиска в нужном регионе.
  11. Настраиваем права на использования Advanced Sphinx странице admin/user/permissions

12. В задачах по рассписанию настраиваем:
@reboot /usr/sbin/sphinx-searchd --config /home/uXXXX/sphinx/имя_домена/sphinx.conf > /dev/null 2>&1

*/10 * * * * /usr/bin/sphinx-indexer --config /home/uXXXX/sphinx/имя_домена/sphinx.conf --rotate index_delta > /dev/null 2>&1

10 4 * * * /usr/bin/sphinx-indexer --config /home/uXXXX/sphinx/имя_домена/sphinx.conf --merge index_main index_delta --merge-dst-range deleted 0 0 --rotate > /dev/null 2>&1

1-ое это поднятие демона после ребута сервера;
2-ое - индексация новых материалов(дельта-индекс) раз в 10 минут;
3-ье - мердж(объединение) дельта-индекса и главного индекса раз в день.