WordPress: используем Sphinx для индексации и поиска

Про Sphinx было немного написано ранее:

Настраиваем систему индексации и поиска Sphinx для LiveStreet

Sphinx используется в движке Мтааламу.ру (LiveStreet) для индексации и поиска и работает действительно хорошо. Не помешает такая система и WordPress'у. В этом нам поможет плагин WordPress Sphinx Search Plugin. Плагин настраивался в Ubuntu Server.

Для начала, создаем директорию за пределами DOCUMENT_ROOT /var/www/sphinx. У Apache должны быть права на запись в нее.

На странице настройки плагина запускаем установку Sphinx:



Плагин скачает, распакует, откомпилирует и настроит Sphinx. Разумеется, должны быть установлены gcc, make и прочее:



После установки конфигурация будет выглядеть так:



Ручная индексация запускается кнопкой:




Для того, чтобы поиск заработал, должен быть запущен демон Sphinx:



Проверяем поиск:



Рабочая настройка sphinx.conf

Создаем /var/www/sphinx/start.sh:

#!/bin/sh
/var/www/sphinx/bin/searchd --config /var/www/sphinx/etc/sphinx.conf


Создаем 2 скрипта, которые будет вызывать cron:

/var/www/sphinx/reindex-delta.sh:

#!/bin/sh
cd /path/to/wp-content/plugins/wordpress-sphinx-plugin/cron/
/usr/bin/php ./reindex.php delta


/var/www/sphinx/reindex-main.sh:

#!/bin/sh
cd /path/to/wp-content/plugins/wordpress-sphinx-plugin/cron/
/usr/bin/php ./reindex.php main


Меняем права:

chmod 755 /var/www/sphinx/*.sh
chown www-data:www-data /var/www/sphinx/*.sh


Добавляем в /etc/rc.local для автостарта Sphinx:

start-stop-daemon --start --chuid www-data:www-data --exec /var/www/sphinx/start.sh


Добавляем индексацию по расписанию в /etc/crontab:

Каждые 3 часа с запуском процесса на 10ой минуте:

10 */3 * * * www-data /var/www/sphinx/reindex-delta.sh


Ежедневно в 2 ночи на 10й минуте:

10 2 * * * www-data /var/www/sphinx/reindex-main.sh


В /wp-content/plugins/wordpress-sphinx-plugin/cron/ копируем reindex_config_sample.php в reindex_config.php и редактируем:

<?php
define('PATH_TO_SPHINX_INDEXER', '/var/www/sphinx/bin/indexer');
define('PATH_TO_SPHINX_CONFIG', '/var/www/sphinx/etc/sphinx.conf');
define('SPHINX_INDEX_NAME', 'wordpress');


Для того, чтобы демон Sphinx запускался — блог должен быть сначала проиндексирован в настройках плагина:



Далее переиндексация будет происходить по расписанию.

Комментарии (2)

RSS свернуть / развернуть
+
0
Sphinx очень интересная вещь. Разработчики заявляют огромную скорость индексации и поиска:

high indexing speed (upto 10 MB/sec on modern CPUs)
high search speed (avg query is under 0.1 sec on 2-4 GB text collections)
high scalability (upto 100 GB of text, upto 100 M documents on a single CPU)
avatar

Gangsta

  • 24 мая 2010, 15:36
+
0
OK!
avatar

Markony

  • 24 мая 2010, 19:19

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.