Я ищу полное руководство по использованию Sphinx с PHP и MySQL. Я бы хотел, чтобы он был немного проще и удобнее, чем тот, который был представлен на сайте.
Я ищу несколько концепций о том, как именно все это работает.
У меня есть сервер с PHP, HTML, другие данные и база данных MySQL. Как я могу настроить Sphinx для поиска и возврата результатов?
Я хотел бы иметь возможность передавать свои поисковые запросы в свой PHP-скрипт и иметь дело с Sphinx и возвращать данные.
PS Я также открыт для предложения относительно любых других альтернатив Sphinx.
Вот очень хороший учебник Sphinx от IBM.
Я наткнулся на этот пост, но не нашел ответа, который хотел увидеть. Итак, вот мое краткое руководство:
1. Установите Sphinx
На Mac с Homebrew:
brew install sphinx
На Amazon Linux (CentOS) с yum:
yum install sphinx
2. Создайте конфигурацию Sphinx
Sphinx поставляется с шаблоном конфигурации. Найдите sphinx.conf.dist в каталоге configs:
На Mac установлена с Homebrew:
/usr/local/Cellar/sphinx/<sphinx version>/etc
На Amazon Linux установлена с yum:
/etc/sphinx
Это довольно просто, но может содержать слишком много настроек для новичков. В таком случае вы можете использовать эту простую конфигурацию:
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
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. Следите за обновлениями
Чтобы поддерживать обновленный индекс, вы можете использовать два индекса:
Каждый раз, когда индекс дельта переиндексирован, он объединяется с основным индексом
Следуйте этой ссылке http://www.sphinxconsultant.com/sphinx-search-delta-indexing/, чтобы узнать больше об этом подходе.
Ссылки, которые я нашел полезными:
Я не слишком уверен в хорошем руководстве, но вот мои шаги.
a) Загрузите и установите это довольно просто
b) Создайте свой первый индекс – вам нужен источник, в котором данная конфигурация очень хорошая, помните, что вы можете использовать первичный источник для настройки всех основных областей, а затем из него вытекают другие источники. Каждый источник должен начинаться с первичного ключа, и я считаю, что он лучше всего работает с key_id AS id
c) Протестируйте свой индекс, используя поиск
d) Начните свой демон поиска для sphinx – searchd, к чему будет подключаться php и как он получит ваши результаты.
e) Сделайте функцию поиска всех индексов, проходящих в индексе, который вы хотите найти, и он вернет идентификаторы в массиве, который соответствует вашему поиску.
f) Сделайте дельту и обновления.
Работа выполнена – форум sphinx очень приятный и должен предоставить вам, если вам нужна помощь. Ричард
Взгляните на расширения поисковой системы на php.net: http://php.net/manual/en/refs.search.php .