IP.Board:Sphinx
Материал из CSI
IP.Board 3.x поддерживает поиск при помощи SphinxПоисковый движок. Но для того, чтобы IP.Board задействовал этот движок, необходимо произвести некоторую настройку.
Содержание |
[править] Установка Sphinx
Если у вас уже установлен Sphinx, то можете пропустить этот раздел и перейти к следующему.
Для начала нужно скачать исходные тексты поискового движка Sphinx с официального сайта. Документация на сайте более подробно объясняет принцип установки Sphinx на сервер. Однако, ниже вы найдёте общие команды и рекомендации по установки и настройки.
Войдите на сервер под администратором и перейдите в каталог временных файлов. Скачайте архив с исходными текстами Sphinx и распакуйте его.
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 --with-mysql (path) make make install
Как только установка Sphinx будет выполнена, можно переходить к подготовки движка IP.Board для работы с новым поисковым механизмом. Для этого, вам нужно будет скопировать sphinxapi.php (файл, поставляется вместе с исходными текстами Sphinx) в корневую директорию форума.
cp api/sphinxapi.php /путь/к/forums/here
После этого, вы должны создать каталоги для хранения файлов индекса и логов Sphinx.
mkdir -p /var/sphinx/log
[править] Настройка IP.Board
Для того, чтобы IP.Board задействовал поисковый движок Sphinx, нужно пройти по адресу System → System Settings → Search Set-Up и в настройке Type of search в выпадающем списке указать Sphinx
/var/sphinx или вы устанавливали Sphinx на другой сервер с MySQL, то не забудьте указать это в настройках форума.Теперь необходимо сгенерировать конфигурационный файл Sphinx. Для этого пройдите в System → Manage Applications & Modules → Build Sphinx Config. Форум предложит скачать этот файл. Скачайте его и загрузите на сервер (точное месторасположение не имеет значения).
[править] Создание файлов индекса и запуск демона Sphinx
Теперь осталось только сказать Sphinx, чтобы тот проиндексировал вашу базу данных. Время индексации зависит от размера базы данных, но обычно индексация проходит очень быстро.
/usr/local/bin/indexer --config /путь/к/sphinx.conf --all
Как только индексация будет завершена, нужно запустить демон Sphinx.
/usr/local/bin/searchd --config /путь/к/sphinx.conf
[править] Последние настройки
Так как Sphinx должен переиндексировать вашу базу данных спустя какое-то время, можно добавить задание в CRON.
crontab -e */15 * * * * /usr/local/bin/indexer --config /путь/к/sphinx.conf core_search_delta members_search_delta forums_search_posts_delta --rotate 0 4 * * * /usr/local/bin/indexer --config /путь/к/sphinx.conf --all --rotate
Как вы заметили, в первом задании указано какие приложения мы должны переиндексировать. Сейчас это:
- Форумы
- Пользователи
- Сообщения
Если у вас установлены Календарь, Блоги, Галерея и Файловый архив, то первое задание должна выглядеть так:
*/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
Также можно присвоить автозапуск демона Sphinx после перезагрузки сервера:
nano /etc/init.d/rc.local
и добавить:
rm -f /var/sphinx/*.spl /usr/local/bin/searchd --config /path/to/sphinx.conf