Настройка Sphinx

Внимание: Некоторые шаги в этом документе, предназначенные для продвинутых пользователей, требуют root-доступ к веб-серверу (который в свою очередь, требует, чтобы у вас был веб-сервер с root-доступом, как правило, предназначенным для выделенного хостинга или VPS хостинга), и если вы не уверены, что вы это сделаете, лучше не пытайтесь.

Введение


IP.Board 3.x обеспечивает полную поддержку использования Sphinx для полнотекстового поиска контента на вашем сайте. Тем не менее, вы по-прежнему несете ответственность за установку и настройку Sphinx, так что данная статья поможет вам сделать так, что вы сможете использовать Sphinx для поиска контента в IP.Board 3.x.
Обратите внимание, что приложения должны определить шаблон Sphinx для того, чтобы их содержимое могло быть найдено. Если вы устанавливаете стороннее приложение, которое неверно определяет файл шаблона Sphinx, то оно не будет доступно для поиска через Sphinx.

Установка Sphinx


Сначала вы должны установить сам Sphinx. Sphinx является поисковой системой, доступной на http://sphinxsearch.com . Документация на их сайте объясняет, как установить sphinx, но ниже мы приведем общие команды, которые вам необходимо будет выполнить.
Войдите на веб-сервера в качестве суперпользователя. Если у вас нет root-доступа на веб-сервер, обратитесь за помощью к вашему хостинг-провайдеру. Перейдите во временный каталог и скачайте sphinx. Распакуйте архив, и перейдите в распакованный каталог sphinx.
ПРИМЕЧАНИЕ: Команды приведенные ниже только для примера, на сайте может быть доступна более новая версия. Пожалуйста, перейдите на sphinxsearch.com, чтобы скачать последнюю стабильную версию.

   cd /tmp
   wget http://sphinxsearch.com/downloads/sphinx-0.9.8.1.tar.gz
   tar xzvf sphinx-0.9.8.1.tar.gz
   cd sphinx-0.9.8.1

Далее вам необходимо скомпилировать и установить пакет

   ./configure
   make
   make install

Если вы получили сообщение об ошибке на любом из этих шагов, остановитесь и исправьте ее. Например, если Sphinx не может найти исполняемые файлы MySQL, вы можете указать, где они, передав »–with-mysql (path)» для команды ./configure.
Как только это будет сделано, Sphinx будет установлен и готов к использованию (хотя еще многое предстоит сделать).
Вам нужно будет скопировать файл api/sphinxapi.php в корневой каталог форума.

   cp api/sphinxapi.php /path/to/forums/here

Далее, вы должны создать каталог, где Sphinx будет хранить лог-файлы и индексы. Предлагаемая директория - /var/sphinx, однако вы можете создать каталог там, где хотите. Только запомните, где вы его создали.

   mkdir -p /var/sphinx/log


Настройка IPB


Теперь войдите в панель управления администратора IPB . Откройте Система → Системные настройки → Настройки поиска. Выберите «Тип поиска» - «Sphinx» в выпадающем меню и установите настройки Sphinx необходимым образом. В большинстве случаев нет необходимости менять настройки, но если вы создали директорию, отличную от /var/sphinx или вы установили Sphinx на ваш MySQL сервер с настройками мульти-сервера, вам необходимы соответствующие настройки. Сохраните настройки. Далее, зайдите в Система → Список модулей, нажмите на «Создать конфигурацию Sphinx». Вы увидите загружаемую копию sphinx.conf. Сохраните этот файл, затем загрузите его на ваш сервер (место размещения неважно, но запомните его).

Создание индексов и запуск поискового демона


Вернитесь в shell, вам необходимо индексировать содержимое форума для поиска. Это достаточно сложная задача, но даже с большой базой данных (4 миллиона сообщений или больше) это не займет много времени. Выполните следующие команды, заменив путь к файлу sphinx.conf.

   /usr/local/bin/indexer --config /path/to/sphinx.conf —all

После окончания индексации необходимо запустить поисковый демон.

   /usr/local/bin/searchd --config /path/to/sphinx.conf

Как только поисковый демон будет запущен, вы можете пользоваться поиском на вашем сайте. Проведите несколько быстрых тестов, чтобы убедиться, что все работает, прежде, чем двигаться дальше.

Последние "тонкие настройки"


Осталось еще 2 шага.
Во-первых, вам необходимо создать два cron задания для обновления индексации через определенные интервалы. Одно из них будет перестраивать «delta» индекс (включая только новый контент) каждые 15 минут. Данная задача захватывает только новый контент, поэтому это не слишком ресурсозатратно.
Вторая задача будет полностью обновлять индексы раз в день (обеспечивая отредактированным сообщениям и прочему соответствующую переиндексацию). Для этого должен быть запланирован интервал, когда ваш сервер наименее загружен (например, в 4 часа утра).

   crontab -e
   */15 * * * * /usr/local/bin/indexer --config /path/to/sphinx.conf core_search_delta members_search_delta forums_search_posts_delta      forums_search_topics_delta --rotate
   0 4 * * * /usr/local/bin/indexer --config /path/to/sphinx.conf --all —rotate

Опять же, не забудьте исправить путь к файлу sphinx.conf. Кроме того, обратите внимание, что для первой cron задачи необходимо указать, какие индексы мы хотим обновить (только _delta индексы). Должен быть установлен, по крайней мере, один индекс для каждого приложения, чтобы оно поддерживало поиск с помощью Sphinx. Таким образом, если вы установите приложения Календарь, Блог, Галерею и Файловый архив, вы должны внести изменения в задание следующим образом:

  • /15 * * * * /usr/local/bin/indexer –config /path/to/sphinx.conf core_search_delta members_search_delta forums_search_posts_delta calendar_search_delta downloads_search_delta blog_search_delta gallery_search_delta gallery_search_comments_delta —rotate

Если вы это не сделаете, то это будет просто означать, что новые данные для приложений не будут добавлены до полной переиндексации в 4 часа утра. Если вы сомневаетесь, просто найдите sphinx.conf файл, который вы загрузили для «_delta» и отметьте все найденные индексы с таким окончанием. В конце, перезагрузите сервер, если вы хотите убедиться, что Sphinx запускается при запуске сервера. Метод выполнения этого различен для разных систем, поэтому обратитесь к системному администратору, если вы в чем-то не уверены. Мы обычно используем на CentOS следующее:

   nano /etc/init.d/rc.local

и добавьте к файлу

   rm -f /var/sphinx/*.spl
   /usr/local/bin/searchd --config /path/to/sphinx.conf

Это позволит избежать затяжной блокировки файлов и перезапустить Sphinx. Настройка пути по мере необходимости.

В заключение


Sphinx является отличной поисковой системой и может уменьшить использование ресурсов на серверах. Вам необходимы некоторые технические знания командной строки / Linux, но, настроив Sphinx один раз, вносить изменения в дальнейшем не потребуется (только при установке новых приложений, если вы хотите, чтобы поиск по их содержимому так же осуществлялся). Мы надеемся, что данная статья содержит информацию, необходимую для установки и использования Sphinx с IP.Board 3.

 

documentation/v3/sphinx.txt · Последние изменения: 2011/05/10 12:27 pizzadox

Работает на DokuWiki
© 2002—2006 ibresource
e-mail: wikiteam@iblink.ru