Умный поиск

Морфологический поиск с использованием облачного кеширования данных Sphinx.

Что такое Sphinx?

Это система полнотекстового поиска, разработанная Андреем Аксёновым и распространяемая по лицензии GNU GPL либо, для версий 3.0+ без исходных кодов.

Sphinx является некоммерческим проектом с открытым исходным кодом, разрабатываемым более 10 лет, автором которого является Андрей Аксенов.

Sphinx (англ. SQL Phrase Index) — система полнотекстового поиска, отличительной особенностью которого является высокая скорость индексации и поиска, а также интеграция с существующими СУБД.

Использование Sphinx значительно повышает скорость поиска и снижает затраты ресурсов. Основные возможности Sphinx:

  • высокая скорость индексации (до 10-15 МБ/с на каждое процессорное ядро);

  • высокая скорость поиска (до 150—250 запросов в секунду на каждое процессорное ядро с 1 000 000 документов);

  • высокая масштабируемость (крупнейший известный кластер индексирует до 3 000 000 000 документов и поддерживает более 50 миллионов запросов в день);

  • поддержка распределенного поиска;

  • поддержка нескольких полей полнотекстового поиска в документе (до 32 по умолчанию);

  • поддержка нескольких дополнительных атрибутов для каждого документа (то есть группы, временные метки и т. д.);

  • поддержка стоп-слов;

  • поддержка однобайтовых кодировок и UTF-8;

  • поддержка морфологического поиска — имеются встроенные модули для английского, русского и чешского языков; доступны модули для французского, испанского, португальского, итальянского, румынского, немецкого, голландского, шведского, норвежского, датского, финского, венгерского языков;

  • нативная поддержка MySQL (всех типов таблиц, в том числе MyISAM, InnoDB, NDB);

Подключение Sphinx дает высокую производительность поиска для сайтов с большой номенклатурой.

Модуль доступен в административной панели магазина в меню Модули → Управление модулями → Разработчикам - Умный поиск - Включить. Затем открыть модуль в меню Модули → Умный поиск.

Результатом работы модуля будет вывод спискам категорий, в которых был найден товар с возможностью отфильтровать результат по выбранной категории и сами товары. Поддерживается так же режим синонимов для замены слов в запросах поиска.

Подключение Sphinx на хостинге Beget

Подключение на других хостингах

Подключение сервиса Sphinx на хостинге Beget
  1. В личном кабинете аккаунта хостинга Beget в разделе Сервисы активируйте сервис Sphinx.Инструкция по использованию сервиса Sphinx на хостинге Beget.

  2. После включения сервиса на хостинге появятся два подраздела - "Индексация" и "Поисковый сервер".

  3. Зайдите в магазин, включите модуль в меню Модули → Управление модулями → Разработчикам - Умный поиск - Включить. Затем откройте модуль в меню Модули → Умный поиск. Зайдите в закладку Конфигурация в настройках модуля. Скопируйте содержимое:

  1. На хостинге Бегет зайдите в раздел Индексация - Редактор конфигурации, очистите содержимое редактора и вставьте скопированный код:

  1. Зайдите в раздел Поисковый сервер - Статус сервера - Включить:

Настройка модуля в магазине

  1. Перейдите в магазине и укажите:

  • Адрес поискового сервера Sphinx, по умолчанию 127.0.0.1.

  • Укажите порт поискового сервера Sphinx, по умолчанию 9306.

  • Нажмите Сохранить.

  • Нажмите F5 - перегрузить страницу, в модуле в закладке Основное должны появиться зеленые галочки:

На хостинге Бегет должен появиться индекс:

Проверка работы поиска

  1. Перейдите на витрину магазина, вбейте в поиск запрос. Нажмите ввод. Вы увидите, что поисковая выдача идет мгновенно, в результатах идет разделение найденных товаров по каталогам. При нажатии на каталог, идет поиск только в текущем каталоге:

При изменении параметров Минимальное количество символов в слове для индексации и Учитывать опечатку при длине поискового запроса от следует обновить конфигурационный файл sphinx.conf для Sphinx на поисковом сервере и произвести индексацию средствами хостинга.

При наличии активной подписки YandexCloud можно включить режим поиска товаров в Яндексе если ничего не найдено во внутреннем поиске.

Настройка модуля Умный поиск

❗️ Если вы на другом хостинге, подключите Sphinx на Beget удаленно

Ваш сайт может находится на любом хостинге, а поисковой сервер Sphinx может быть использован как отдельный сервис на хостинге Beget.

Внешний доступ к Sphinx
  1. Зарегистрироваться на хостинге Beget.

  2. В личном кабинете аккаунта хостинга Beget в разделе Сервисы активируйте сервис Sphinx.

  3. Инструкция по использованию сервиса Sphinx на хостинге Beget.

  4. Включите на своем хостинге доступ к базе данных MySQL по внешнему IP-адресу

  5. В качестве конфигурационного файла sphinx.conf для Sphinx используйте данных из закладки Конфигурация в настройках модуля. Вместо параметра sql_host=127.0.0.1 указать свой выделенный IP-адрес базы данных MySQL sql_host=IP_MYSQL.

  6. В личном кабинете аккаунта хостинга Beget в разделе Сервисы - Sphinx - Поисковой сервер активировать внешний доступ и указать IP-адрес своего сайта.

Настройка модуля для доступа к Sphinx по внешнему адресу

Режим работы модуля

  1. Модуль активируется автоматически при наличии активной технической поддержки.

  2. ❗️Модуль деактивируется автоматически при отсутствии активной технической поддержки.

  3. Дата окончания работы модуля доступна в закладке О модуле - Окончание работы.

  4. Техническая поддержка по работе поискового сервера Sphinx и его настройка осуществляется технической службой хостинга.

Модуль доступен для версии PHPShop 6.5.1+ и только при активной технической поддержке

Last updated

Was this helpful?