Индекс каталога в OpenSearch

Индекс каталога в OpenSearch (experimentsite.facet) - решение для Битрикс

Индекс каталога в OpenSearch

0
10 000 руб
Индекс каталога в OpenSearch (experimentsite.facet) - решение для Битрикс

Модуль индексирует товары каталога в OpenSearch для ускорения стандартных компонентов:

  1. Для смарт-фильтра — фасетный индекс в OpenSearch.
  2. Для списка товаров — фильтр и сортировка товаров выполняется через OpenSearch.
Шаблоны компонентов не требуют доработки — модуль встраивается прозрачно. При ошибке OpenSearch управление передаётся стандартным методам 1С-Битрикс, сообщение записывается в лог, а пользователь получает страницу как раньше.

Производительность

Пример времени выполнения компонентов при повторных запросах без кеша на одном из проектов (~130 000 товаров в каталоге, ~70 000 товаров в разделе, 23 свойства в фильтре):
Компонент Без модуля С модулем Ускорение
Умный фильтр 1,9 сек 0,12 сек ×15
Список товаров 1,17 сек 0,19 сек ×6
Выигрыш достигается за счёт переноса фильтрации и агрегаций из SQL в поисковый индекс OpenSearch. Чем больше товаров и свойств в каталоге, тем заметнее разница.

Ключевые возможности

Фасетный индекс в OpenSearch

Компонент «Умный фильтр «ЭкспериментСайт» реализует механики выбора вариантов свойств и подсчета количества с помощью OpenSearch аналогично стандартному компоненту 1С-Битрикс.

Фильтр и сортировка товаров через OpenSearch

Компонент «Элементы раздела «ЭкспериментСайт» получает из OpenSearch идентификаторы элементов на странице и общее количество, позволяя базе данных использовать первичный ключ для загрузки информации о товарах, не выполняя полное сканирование таблицы. Поддержаны пагинация, сортировка по нескольким полям, случайная сортировка, фильтр по полям товара, свойствам, товару и ценам.

Автоматическое обновление индекса

Модуль отслеживает события 1С-Битрикс: изменение элементов инфоблока, значений свойств, цен и параметров товара. Записи накапливаются в очереди и пакетно отправляются в OpenSearch фоновым агентом. Помимо оперативного обновления, модуль ежедневно в 03:00 запускает полную переиндексацию каждого каталога. Это гарантирует целостность индекса даже при сбоях или пропущенных событиях.

Простая интеграция
  • Прозрачная подмена компонентов. Включается в один клик через админку. Стандартные компоненты Битрикс заменяются на версии с OpenSearch. Шаблоны сайта подключаются через символические ссылки — ничего не копируется и не дублируется.
  • Автоматический fallback. Если индекс недоступен или ещё не построен для конкретного инфоблока — модуль прозрачно переключается на стандартные запросы 1С-Битрикс. Сайт продолжает работать как раньше.
  • Легкое отключение. Каждая подмена компонента — отдельная фича, которую можно включить или выключить независимо.
Особенности

Управление полями индекса

По умолчанию в индекс попадают поля для сортировки (идентификатор, сортировка и доступность) и свойства, отображаемые в смарт-фильтре. Если поля нет в индексе, в лог будет записано сообщение и модуль вернется к стандартным методам 1С-Битрикс.

Для блоков «Хит продаж», «Спецпредложения» на главной странице и дополнительного фильтра в каталоге, может потребоваться указать дополнительные поля для индексации:
  1. Если используете «Механизм единого управления свойствами», в форме редактировании свойства отметьте флаг «Добавить в индекс OpenSearch».
  2. С помощью пользовательского события onIndexFieldScope (для разработчиков, подробнее на вкладке «Установка»).
Если требуемое поле ещё не реализовано в модуле, напишите нам на вкладке «Поддержка».

Отбор товаров

Свойства торговых предложений хранятся в индексе как параметры товара — значения всех предложений объединяются в массив на уровне родительского товара. Поэтому фильтр с несколькими условиями по свойствам предложений вернёт товары, у которых условия выполняются у разных предложений. Например, у товара «Футболка» три предложения: (Красный, S), (Красный, M), (Синий, L). При фильтрации «Цвет = Красный И Размер = L» этот товар попадёт в выдачу, потому что среди его предложений есть красное и есть размера L.

Не поддерживается проверка по дате активности товара и управления правами доступа в инфоблоке.

Если требуемый фильтр ещё не реализован в модуле, напишите нам на вкладке «Поддержка».

Meilisearch

Реализована экспериментальная поддержка Meilisearch — фасетный индекс и отбор товаров. Не поддерживается случайная сортировка и группировка по нескольким полям.

Наш модуль уже успешно используют на наших проектах