Установка и настройка Sphinx 2.0.5 Debian 6.0 (squeeze)

Сфинкс. Полнотекстовый поискSphinx (англ. SQL Phrase Index) — бесплатная система полнотекстового поиска, которая позволяет очень быстро индексировать и искать данные на сайте.
У многих возникают трудности с установкой и настройкой, на самом деле все очень прост, нужно лишь выполнить несколько простых действий.
1. Устанавливаем необходимые библиотеки, чтобы не было ошибок при установке сфинкса
apt-get install libmysql++-dev

2. Скачиваем сфинкс

wget http://sphinxsearch.com/files/sphinx-2.0.5-release.tar.gz

Выбрать более свежую версию можно sphinxsearch.com/downloads/
3. Распаковываем и конфигурируем
tar xzvf sphinx-2.0.5-release.tar.gz
cd sphinx-2.0.5-release
./configure --prefix=/usr/local/sphinx --with-mysql

устанавливается в /usr/local/sphinx с поддержкой MySQL
если возникают ошибки то можно дописать ./configure --prefix=/usr/local/sphinx --with-mysql --with-mysql-libs=/usr/lib

4. устанавливаем
make
make install


5. Настраиваем
Берем конфиг (sphinx.conf) из каталога install движка(livestreet) и копируем в каталог установленного сфинкса.
Файл должен находится тут.
/usr/local/sphinx/etc/sphinx.conf

так же пример конфига лежит в том же каталоге по имени sphinx.conf.dist можно его переименовать и вручную все настраивать
открываем и заполняем настройки подключения к базе

        sql_user                = sphinx
        sql_pass                = password
        sql_db                  = basename

6. Запускаем индексатор для создания индекса
/usr/local/sphinx/bin/indexer --all

7. Создаем файл запуска демона сфинкса и заполняем.
vim /etc/init.d/sphinx

заполняем содержимым
#! /bin/sh
### BEGIN INIT INFO
# Provides: sphinx
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/sphinx/bin/searchd
NAME=sphinx
DESC=sphinx

#test -x $DAEMON || exit 0

case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --pidfile /usr/local/sphinx/var/log/searchd.pid --exec $DAEMON -- -c /usr/local/sphinx/etc/sphinx.conf || true
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --quiet --pidfile /usr/local/sphinx/var/log/searchd.pid --exec $DAEMON || true
echo "$NAME."
;;
restart)
echo -n "Restarting $DESC: "
start-stop-daemon --stop --quiet --pidfile /usr/local/sphinx/var/log/searchd.pid --exec $DAEMON -- -c /usr/local/sphinx/etc/sphinx.conf || true
sleep 1
start-stop-daemon --start --quiet --pidfile /usr/local/sphinx/var/log/searchd.pid --exec $DAEMON -- -c /usr/local/sphinx/etc/sphinx.conf || true
echo "$NAME."
;;
*)
echo "Usage: $NAME {start|stop|restart}" >&2
exit 1
;;
esac

exit 0

добавляем права на запуск файла
chmod +x /etc/init.d/sphinx

и добавляем в автозагрузку
insserv sphinx

для debian 5.0 комадна будет выглядеть так
update-rc.d sphinx defaults


8. Создаем задание в планировщик (cron) чтобы индексы поисковика перестраивались сами
vim /etc/cron.d/sphinx

заполняем содержимым
12 */3 * * * root /usr/local/sphinx/bin/indexer --rotate topicsIndex > /dev/null 2>&1
*/50 * * * * root /usr/local/sphinx/bin/indexer --rotate commentsIndex > /dev/null 2>&1

если у вас используется плагин компании добавьте так же
12 */3 * * * root /usr/local/sphinx/bin/indexer --rotate companiesIndex > /dev/null 2>&1

перезапускаем планировщик cron
/etc/init.d/cron restart

топики и компании будут индексироваться раз в 3 часа, а комментарии раз в 50 минут.

Установка завершена, можно наслаждаться морфологическим поиском на своем сайте.

2 комментария

avatar
Скажите пожалуйста, если на сервере стоит ubuntu, то порядок действий будет таким же?
avatar
Порядок будет такой же, только как помню в ubuntu root отключен по умлочнию, т.е. многие команды нужно будет выполнять с sudo.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.