Подтвердить что ты не робот

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

Я ищу полное руководство по использованию Sphinx с PHP и MySQL. Я бы хотел, чтобы он был немного проще и удобнее, чем тот, который был представлен на сайте.

Я ищу несколько концепций о том, как именно все это работает.

У меня есть сервер с PHP, HTML, другие данные и база данных MySQL. Как я могу настроить Sphinx для поиска и возврата результатов?

Я хотел бы передать свои поисковые запросы на свой PHP script и иметь дело с Sphinx и возвращать данные.

P.S. Я также открыт для предложения относительно любых других альтернатив Сфинксу.

4b9b3361

Ответ 1

Здесь - очень хороший учебник Sphinx от IBM.

Ответ 2

Я столкнулся с этим сообщением, но не нашел ответа, который хотел увидеть. Итак, вот мое краткое руководство:

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. Сохранять актуальный индекс

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

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

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

Следуйте по этой ссылке http://www.sphinxconsultant.com/sphinx-search-delta-indexing/, чтобы узнать больше об этом подходе.

Ссылки Я нашел полезным:

Ответ 3

Я не слишком уверен в хорошем руководстве, но вот мои шаги.

a) Загрузите и установите его довольно просто.

b) Создайте свой первый индекс - вам нужен источник, в котором данная конфигурация очень хорошая, помните, что вы можете использовать первичный источник для настройки всех основных областей, а затем из него вытекают другие источники. Каждый источник должен начинаться с первичного ключа, и я считаю, что он лучше всего работает с key_id AS id

c) Протестируйте свой индекс, используя поиск

d) Начните свой демон поиска для sphinx - searchd. Это то, с чем php будет подключаться и как он получит ваши результаты.

e) Сделайте функцию поиска всех индексов, проходящих в индексе, который вы хотите выполнить, и он вернет идентификаторы в массиве, который соответствует вашему поиску.

f) Сделайте дельту и обновления.

Работа выполнена - форум sphinx очень приятный и должен предоставить вам, если вам нужна помощь. Ричард