Я наткнулся на этот пост, но не нашел ответа, который хотел увидеть.Вот мое краткое руководство:
1.Установите Sphinx
На Mac с Homebrew:
brew install sphinx
В Amazon Linux (CentOS) с yum:
yum install sphinx
2.Создать конфигурацию Sphinx
Sphinx поставляется с шаблоном конфигурации.Найдите файл sphinx.conf.dist в каталоге config:
На Mac, установленном с Homebrew:
/usr/local/Cellar/sphinx/<sphinx version>/etc
На Amazon Linux, установленном с yum:
/etc/sphinx
Itэто довольно просто, но может содержать слишком много настроек для новичка.В таком случае вы можете использовать эту простую конфигурацию:
source TestSource {
type = mysql
sql_host = <host>
sql_user = <user>
sql_pass = <password>
sql_db = <db>
sql_query_range = select min(id), max(id) from TestTable
sql_range_step = 2048
sql_query = select id, some_info from TestTable\
where id >= $start and id <= $end
}
index TestIndex {
source = TestSource
path = /var/lib/sphinx/test-index
min_word_len = 3
min_infix_len = 3
}
searchd {
log = /var/log/sphinx/searchd.log
query_log = /var/log/sphinx/query.log
pid_file = /var/run/searchd.pid
max_matches = 200
listen = localhost:9312
}
Я добавил параметр max_matches к этой конфигурации, потому что мой первый вопрос после того, как я все заработал, был: «Почему я всегда получаю только 20 результатов поиска?».С max_matches вы можете установить ограничение на количество результатов поиска.
3.Создайте индекс, используя индексатор
indexer --all
4.Запустите Sphinx daemon
sudo searchd -c /path/to/config/sphinx.conf
5.Установите расширение PHP Sphinx
На Mac с Homebrew:
brew install homebrew/php/php56-sphinx
В Amazon Linux с yum:
yum install libsphinxclient
pecl install sphinx
6.Запросите ваш индекс из PHP
$index = new SphinxClient();
$index->setServer("127.0.0.1", 9312);
$result = $index->query('some search term', 'TestIndex');
print_r($result);
В случае каких-либо ошибок вы можете получить дополнительную информацию с помощью следующего метода:
$index->getLastError();
7.Индекс актуальности
Для поддержания индекса актуальности можно использовать два индекса:
- Основной индекс, который обновляется не часто (раз в неделю, месяци т. д.)
- И дельта-индекс, который обновляется часто (каждый час, 5 минут и т. д.)
Каждый раз, когда дельта-индекс переиндексируется, он объединяется с основным индексом
Перейдите по этой ссылке http://www.sphinxconsultant.com/sphinx-search-delta-indexing/, чтобы узнать больше об этом подходе.
Ссылки, которые я нашел полезными: