#Умный поиск - Разработчикам

Морфологический поиск с использованием облачного кеширования данных 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.

В качестве примера конфигурационного файла sphinx.conf для Sphinx используйте данных из закладки Конфигурация в настройках модуля.
Параметры log, query_log, pid_file, path зависят от хостинга и операционной системы на нем. Правильность указания этих параметров следует уточнить в поддержке хостинга.

❗️Ваш сайт может находится на любом хостинге, а поисковой сервер 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+ и только при активной технической поддержке