Intereting Posts
Laravel 5.5 Ошибка Базовая таблица или представление уже существуют: 1050 Таблица «пользователи» уже существуют PHP: Найти и exctract в массив все экземпляры определенного текста в строке SQL QUERY многократный поиск в одной строке для поиска данных из другой строки в одной таблице Как вызвать функцию PHP из строки, хранящейся в переменной PHP openssl_sign DIES Каков наилучший способ реализации двухстороннего шифрования с помощью PHP? .htaccess переписать правило со статическими файлами дает мне 404, что мне не хватает? Получить последний день месяца? phpMyAdmin Неустранимая ошибка: вызов неопределенной функции __ () PHP встроен в сервер и переписывает мод .htaccess В PHP вы можете создать экземпляр объекта и вызвать метод в одной строке? Преобразовать MMDDYYYY на PHP PHP: array_merge () в альтернативном порядке (почтовый заказ)? Google Analytics api – просмотр страниц по URL-адресу Настроить .htaccess для работы с PHP Framework (Silex)

Руководство по использованию Sphinx с PHP и MySQL

Я ищу полное руководство по использованию 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. Следите за обновлениями

Чтобы поддерживать обновленный индекс, вы можете использовать два индекса:

  1. Основной индекс, который не обновляется часто (один раз в неделю, месяц и т. Д.),
  2. И дельта-индекс, который часто обновляется (каждый час, 5 мин и т. Д.),

Каждый раз, когда индекс дельта переиндексирован, он объединяется с основным индексом

Следуйте этой ссылке 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 .