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

Если вы указали путь к 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

[править] Ссылки

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Категории
Инструменты