SPHINX PHP ПРИМЕРЫ
Sphinx PHP: примеры использования
В PHP существует множество библиотек, которые могут быть использованы для индексации и поиска текстовых данных, и одной из самых популярных является Sphinx. Далее в этой статье мы рассмотрим несколько примеров ее использования.
Основные принципы работы с Sphinx
Для начала необходимо установить Sphinx и соответствующую PHP библиотеку. Далее можно начать индексацию данных и поиск. Пример кода индексации:
$sphinx = new \Sphinx\SphinxClient();
$sphinx->setServer("localhost", 9312);
$sphinx->setMatchMode(SPH_MATCH_EXTENDED);
$result = $sphinx->query("test");
print_r($result);
В данном примере мы создаем новый объект Sphinx и задаем сервер, который будет использоваться для поиска. Далее задаем режим совпадения и отправляем запрос на поиск слова "test". В результате мы получаем массив с результатами поиска, который можно отобразить на странице.
Пример поиска по тегам
Один из самых распространенных случаев использования Sphinx - это поиск по тегам. Пример кода:
$sphinx = new \Sphinx\SphinxClient();
$sphinx->setServer("localhost", 9312);
$sphinx->setMatchMode(SPH_MATCH_ALL);
$sphinx->setFilter('tag_id', [1, 2, 3]);
$result = $sphinx->query("test");
print_r($result);
В данном примере мы добавляем фильтр по тегам и отправляем запрос на поиск слова "test". Теги задаются в виде массива, например, [1, 2, 3]. В результате получаем массив с результатами поиска.
Пример поиска с использованием весовых коэффициентов
Еще один интересный вариант использования Sphinx - это поиск с использованием весовых коэффициентов. Пример кода:
$sphinx = new \Sphinx\SphinxClient();
$sphinx->setServer("localhost", 9312);
$sphinx->setMatchMode(SPH_MATCH_ALL);
$sphinx->setFieldWeights(['title' => 100, 'description' => 50]);
$result = $sphinx->query("test");
print_r($result);
В данном примере мы задаем весовые коэффициенты для полей "title" и "description". Например, поле "title" имеет вес 100, что означает, что при поиске будет уделяться больше внимания документам, в которых это слово находится в заголовке. Поле "description" имеет вес 50, что означает, что оно менее важно. В результате мы получаем массив с результатами поиска.
ruphp.com #21: Работа со Sphinx
Создание PHP веб сайта за 1 час! + Выгрузка на сервер
Собеседование по PHP. Самое провальное. Backend. Laravel. Структуры данных. Списки. ООП. [16.10.19]
Почему ivi перешел со Sphinx на Elasticsearch / Евгений Россинский (ivi)
Как устроен поиск / Андрей Аксенов (Sphinx)
Как начать работать на sphinx (Создание своей документации) - python, latex