Уже должен стоять mysql сервер и клиент.
1) Ubuntu: Качаем пакеты
sudo apt-get install sphinxsearch
Debian:
1. устанавливаем все необходимое :
sudo apt-get install libmysql++-dev libmysqlclient15-dev checkinstall (для поддержки pgsql нужны будут библиотеки devel для pgsql)
2. далее тянем себе исходники
wget "http://sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz"
3. распаковываем и переходим
tar zxvf sphinx-0.9.9.tar.gz && cd sphinx-0.9.9
4. собираем :
./configure -with-mysql -without-pgsql (я подключил возможность использования mysql и отключил возможность использования pgsql)
make
5. теперь будем создавать deb пакет :
делаем checkinstall в папке с собранными исходниками ( в процессе нужно будет ответить на ряд вопросов)
после сборки пакета ставим его через dpkg -i
PS indexer и остальные нужные скрипты находятся в папке – /usr/local/bin
2) Редактируем конфиг /etc/sphinxsearch/sphinx.conf
# Источник данных для поиска
source users_source
{
# Тип данных
# Доступные типы: mysql, pgsql, mssql, xmlpipe, xmlpipe2, odbc
type = mysql
# Необходимые параметры для подключения к базе данных
sql_host = localhost
sql_user = root
sql_pass = pass
sql_db =dbname
sql_port = 3306 # опциональный, по умолчанию 3306
# пред-запрос, выполняется перед выполнением основного запроса на получение данных из базы
# В нашей базе данные хранятся в UTF-8, чтобы поиск по русским символам работал успешно выполним соответсвующий запрос
sql_query_pre = SET NAMES utf8
# запрос, который получает данные документов для поиска
# первым полем обязательно должен идти уникальный положительный ID документа
sql_query = \
SELECT user_id, user_id AS u_id, email, firstname, middlename, lastname \
FROM user
# поля, по которым может идти группировка, фильтрация и сортировка
sql_attr_uint = u_id
# document info query, ONLY for CLI search (ie. testing and debugging)
# optional, default is empty
# must contain $id macro and must fetch the document by that id
sql_query_info = SELECT * FROM user WHERE user_id=$id
}
# индекс каталога товаров для поиска
index users_index
{
# Источник данных для индексирования
source = users_source
docinfo = extern
# Адрес, где будут хранится данные индекса
path = /var/lib/sphinxsearch/data/users
# Индекс с учетом морфологии
morphology = stem_enru
# Минимальная длина слова для индексации
min_word_len = 1
# Кодировка
charset_type = utf-8
}
# поисковый демон (служба)
searchd
{
# какой порт и какой протокол "слушает" служба
port = 9312
# файл с логами
log = /var/log/sphinxsearch/searchd.log
# файл с логами поисковых запросов
query_log = /var/log/sphinxsearch/query.log
# PID file, searchd process ID file name
# mandatory
pid_file = /var/run/searchd.pid
}
3) Запускаем индексацию нашей базы
sudo indexer --all
4) Запускаем демона sphinx
searchd
5) Проба поиска
search Andrew
6) Переиндексация
sudo indexer --all --rotate