К списку статей

Как построить быстрый каталог на 1С-Битрикс с OpenSearch

Технологии
14 сентября 2026
9 минут
47

Разбираем, как OpenSearch помогает ускорить поиск и фильтрацию в больших каталогах на 1С-Битрикс. Показываем архитектуру решения, индексацию без простоя и работу нескольких сайтов в одной платформе.

Как построить быстрый каталог на 1С-Битрикс с OpenSearch

Что такое OpenSearch и зачем он нужен каталогу

Большой каталог - одна из самых нагруженных частей B2B- и e-commerce-сайта. Пользователь ожидает, что товары будут находиться быстро, а фильтры будут работать без задержек даже при большом количестве характеристик и вариантов.

При этом сам каталог часто хранится не в CMS, а во внешней PIM-системе. Возникает архитектурная задача: как передавать большие объёмы товарных данных на сайт, быстро выполнять поиск и фильтрацию и при этом не создавать дополнительную нагрузку на основную базу Битрикс.

OpenSearch — поисковый движок с открытым исходным кодом, который используется для быстрого поиска и обработки больших объёмов данных.

В контексте интернет-магазина или B2B-портала он может отвечать за те операции, которые особенно важны для каталога:

  • поиск товаров;

  • фильтрацию по характеристикам;

  • сортировку;

  • выборки по нескольким параметрам;

  • работу с большими массивами товарных данных.

Идея состоит не в том, чтобы заменить Битрикс или PIM на OpenSearch. Каждая система продолжает выполнять свою задачу.

PIM хранит и управляет товарными данными → OpenSearch индексирует их → Bitrix обеспечивает бизнес-логику и API → фронтенд показывает каталог пользователю.

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

Когда стандартного каталога Битрикс становится недостаточно

Представим каталог с большим количеством товаров и характеристик. Пользователь выбирает несколько параметров: бренд, тип товара, диапазон значений, технические характеристики.

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

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

В рассматриваемом проекте исходная ситуация была сложнее: у заказчика уже существовала PIM-система PimCore с полным товарным каталогом, но обмен с сайтами отсутствовал. Одновременно требовалось объединить несколько сайтов в единую мультисайтовую платформу на 1С-Битрикс и обеспечить быструю работу каталога. Поэтому каталог решили вынести в отдельный поисковый контур на OpenSearch.

Как устроена архитектура

В основе решения - разделение ответственности между системами.

Как устроена архитектура

В проекте фронтенд на Nuxt 3 взаимодействует с бэкендом через REST API, а данные каталога поступают из PIM через feed.

При этом OpenSearch становится отдельным слоем, который занимается именно каталогом: индексирует товары и быстро отдаёт данные для поиска и фильтрации.

Как обновляется каталог

Одна из важных задач — не просто быстро искать товары, но и обновлять индекс без остановки сайта.

Если во время переиндексации записывать новые данные непосредственно в рабочий индекс, можно получить неполный или некорректный каталог. Поэтому в решении используется схема с двумя индексами и alias.

Как обновляется каталог

Сначала создаётся новый индекс и в него загружаются данные из PIM. Затем система обрабатывает товары, применяет правила обогащения и проверяет результат.

Только после успешного завершения индекс становится актуальным: alias переключается на новую версию. Если индексация завершается ошибкой, рабочий индекс не меняется — сайт продолжает использовать предыдущую версию каталога.

Для пользователя это означает простую вещь: переиндексация каталога не требует остановки сайта.

А если на одной платформе несколько сайтов?

Вторая задача проекта — мультисайтовость.

Заказчику нужно было объединить два проекта в один Битрикс-инстанс, но при этом сохранить изоляцию каталогов и бизнес-логики.

Мы не стали делать отдельную копию всего решения для каждого сайта. Вместо этого использовали общий код и siteId, который определяет контекст текущего сайта. В результате архитектура выглядит так:

 А если на одной платформе несколько сайтов?

А если на одной платформе несколько сайтов?

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

Это позволяет добавлять новые сайты без копирования всей кодовой базы.

Как мы организовали код

Чтобы решение не превратилось в набор отдельных доработок под каждый проект, OpenSearch-функциональность разделили на четыре Composer-пакета.

Core — общий фундамент: подключение к OpenSearch, конфигурация сайтов, построение запросов и основные контракты.

Indexer — загрузка данных из feed, создание индексов и переключение alias.

Filters — фильтры и сортировки каталога.

Settings — административная часть: настройка фильтров, обогащение данных, отчёты и ручной запуск индексации.

Получается общий каркас, который можно использовать в разных Битрикс-проектах. При этом структура конкретного товара, его поля и правила обработки остаются частью конкретного проекта.

Это важный момент: переиспользуется не весь проект целиком, а инфраструктура, которая действительно является общей.

Можно ли управлять каталогом без разработчика?

Да. Ещё одна задача была связана с управлением данными.

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

Для этого в решении предусмотрено обогащение каталога через административную часть Битрикс.Правила можно менять в админке, а при следующей индексации они применяются к товарам. Дополнительно сохраняется информация о срабатывании правил, что помогает разобраться, почему конкретные данные попали в индекс именно в таком виде.

В результате каталог становится не просто быстрым, но и управляемым.

Что с SEO-фильтрами?

Производительность каталога - только часть задачи. Для коммерческого сайта важно, чтобы страницы каталога можно было нормально индексировать поисковыми системами.

Поэтому в проекте реализовали динамические SEO-ЧПУ для комбинаций фильтров с защитой от дублей. То есть архитектура учитывает не только то, как быстро показать товар пользователю, но и то, как поисковая система будет находить страницы каталога.

Почему здесь именно микросервисный подход

В данном случае не было задачи превратить Битрикс в десятки независимых сервисов.

Микросервисный подход использовали там, где он действительно даёт преимущество: каталог отделён от основной базы сайта и работает в специализированном поисковом контуре.

При этом:

  • PIM остаётся источником товарных данных;

  • Bitrix отвечает за сайт и бизнес-логику;

  • OpenSearch — за поиск и фильтрацию;

  • Nuxt — за пользовательский интерфейс.

Такое разделение позволяет независимо развивать и масштабировать каталог, не усложняя остальные части платформы.

Результат

В результате в рамках проекта удалось объединить два сайта в один Битркс-инстанс, сохранить раздельную работу каталогов и перевести каталог второго сайта на OpenSearch. OpenSearch-функциональность была унифицирована в общие Composer-пакеты, а индексация и управление каталогом встроены в общую инфраструктуру проекта.

Ключевой результат решения - не только ускорение поиска и фильтрации. Архитектура позволяет:

  • обновлять каталог без простоя;

  • изолировать данные нескольких сайтов;

  • переиспользовать технический код;

  • управлять фильтрами и обогащением через админку;

  • масштабировать решение вместе с каталогом;

  • не переносить всю нагрузку по поиску и фильтрации на стандартную базу Bitrix.


Главное

OpenSearch не является заменой 1С-Битрикс или PIM. Его задача — стать специализированным слоем для работы с каталогом.

Именно такое разделение позволяет построить архитектуру, в которой каждая система занимается своей задачей: PIM управляет товарными данными, Bitrix — сайтом и бизнес-логикой, а OpenSearch обеспечивает быстрый поиск и фильтрацию.

Для проектов с большим каталогом и несколькими сайтами это позволяет получить более производительную и управляемую архитектуру без необходимости полностью перестраивать существующую платформу.

 

Веб-интегратор «Факт» поможет оценить архитектуру каталога и подобрать подходящий вариант реализации. Оставьте заявку, разберём задачу и предложим решение под вашу инфраструктуру.

Обсудить задачу →
 Андрей Ходаев
Автор
Андрей Ходаев
Менеджер проектов
Сайт Fact.digital использует cookie. Это дает нам возможность следить за корректной работой сайта, а также анализировать данные, чтобы развивать наши продукты и сервисы. Оставаясь на сайте и (или) нажимая кнопку «Принять условия», вы соглашаетесь с условиями обработки ваших персональных данных, содержащихся...