-10%Переходите к нам от другого подрядчика — дадим скидку на первый этап работ
Ускорение и производительность

Быстрый умный фильтр и поиск на Битрикс для больших каталогов

Ускоряем умный фильтр и поиск на 1С-Битрикс: фасетный индекс, внешние движки Elasticsearch и Sphinx, морфология и релевантность, автодополнение и агрегации. Подбор товара на каталогах в сотни тысяч позиций становится мгновенным.

10+ летна тяжёлых каталогах Битрикс
до ×30ускорение умного фильтра
<100 мсотклик поиска с автодополнением
ES · Sphinxвнешние движки поиска
ФАСЕТЫ Elastic Sphinx <100 мс
Что входит

Что мы делаем по оптимизации фильтров и поиска

Собираем решение под ваш каталог — от пересборки фасетного индекса до переноса поиска на внешний движок с морфологией, автодополнением и агрегациями.

Пересборка фасетного индекса

Перестраиваем фасет умного фильтра под реальные свойства каталога с автоматической пересборкой по событию.

Внешний движок Elasticsearch или Sphinx

Выносим тяжёлый поиск и агрегации в Elasticsearch или Sphinx — отклик за десятки миллисекунд под нагрузкой.

Морфология и релевантность

Поиск понимает словоформы, опечатки и синонимы, релевантные товары стоят вверху выдачи.

Автодополнение и подсказки

Живые подсказки в поисковой строке с первой буквы — товары, категории и популярные запросы.

Агрегации и счётчики

Счётчики доступных значений фильтра и группировки считаются на стороне движка без тяжёлых запросов к базе.

Кеш фильтра и сброс

Кешируем результаты фильтра и поиска с корректным сбросом при изменении цен, остатков и свойств.

Подробно об услуге

Оптимизация фильтров и поиска на Битрикс: фасеты, Elasticsearch и Sphinx

Умный фильтр и поиск — это та часть интернет-магазина, через которую покупатель находит товар. На каталоге в несколько тысяч позиций штатные средства 1С-Битрикс справляются, но как только ассортимент вырастает до сотен тысяч и миллионов SKU, фильтр начинает думать секундами, а поиск выдаёт нерелевантную выдачу или вовсе пустые страницы. Оптимизация фильтров и поиска возвращает каталогу мгновенный отклик: пересборка фасетного индекса, перенос тяжёлых выборок на внешние поисковые движки Elasticsearch и Sphinx, настройка морфологии, релевантности, автодополнения и агрегаций. В итоге подбор товара на большом каталоге снова занимает доли секунды.

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

Что именно тормозит и как мы это лечим

Мы разбираем умный фильтр и поиск по слоям и оптимизируем каждый из них. Сначала диагностируем медленные запросы фильтра и поиска: смотрим план выполнения, объём данных, наличие фасетного индекса и его актуальность. Затем перестраиваем фасет так, чтобы он покрывал реальные свойства каталога и пересобирался по событию, а не вручную. Тяжёлый полнотекстовый поиск с морфологией выносим в Elasticsearch или Sphinx, которые специально заточены под такие задачи и отдают релевантную выдачу с подсветкой и подсказками за десятки миллисекунд. Поверх настраиваем кеширование фильтра, чтобы повторные запросы вообще не доходили до базы.

Основные узлы, которые мы оптимизируем:

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

Когда нужна оптимизация фильтров и поиска

Оптимизация окупается там, где каталог большой, а трафик чувствителен к скорости. Это интернет-магазины и B2B-каталоги с сотнями тысяч и миллионами позиций, с десятками свойств в фильтре, диапазонами цен и характеристик, полнотекстовым поиском по названиям и описаниям. Чем больше у вас SKU и чем сложнее фильтр, тем дороже обходится каждая лишняя секунда отклика: пользователь, который ждёт пересчёт фасетов больше двух секунд, уходит, не подобрав товар. Поиск, который не понимает морфологию и опечатки, отдаёт пустую выдачу там, где товар на складе есть.

Особенно остро проблема стоит на пиковых нагрузках — в распродажи и сезон. Когда десятки пользователей одновременно крутят фильтр, тяжёлые запросы выстраиваются в очередь, нагружают базу и тормозят весь сайт, а не только каталог. Перенос поиска и агрегаций на внешний движок снимает эту нагрузку с основной базы: Elasticsearch и Sphinx держат поисковые запросы отдельно, поэтому фильтр остаётся быстрым даже под нагрузкой, а сайт не падает в час пик.

Что даёт перенос на Elasticsearch и Sphinx

Внешние поисковые движки решают то, с чем реляционная база справляется плохо. Sphinx — лёгкий и быстрый движок полнотекстового поиска с морфологией, который хорошо ложится на каталог и недорого обслуживается. Elasticsearch — мощная поисковая система с богатыми возможностями релевантности, агрегаций, фасетного поиска и аналитики, которая масштабируется на очень большие каталоги и сложные сценарии. Мы подбираем движок под вашу задачу и объём: где-то достаточно Sphinx для быстрого поиска, где-то нужен Elasticsearch с фасетами и агрегациями прямо на стороне движка.

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

Как это работает

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

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

запрос +фильтр Elastic / Sphinxморфологияфасеты · опечатки Агрегациирелевантность Выдача<100 мс Поиск идёт мимо тяжёлой базы — она остаётся свободной для заказов и оплат
Запрос и фильтр → внешний движок (морфология, фасеты) → агрегации и релевантность → мгновенная выдача.
Сравнение

Штатный фильтр, фасет и внешний движок поиска

Чем больше каталог, тем сильнее разница между штатным фильтром, фасетным индексом и поиском на внешнем движке Elasticsearch или Sphinx.

Критерий Штатный фильтрФасет БитриксаElasticsearch / Sphinx
Скорость фильтра и поиска Секунды на большом каталогеДоли секунды на фасетеДесятки миллисекунд
Качество поиска Базовый, без морфологииШтатный поиск по индексуМорфология, опечатки, синонимы
Агрегации и счётчики Нет, тяжёлые запросы к базеСчётчики из фасетаАгрегации на стороне движка
Поведение под нагрузкой Очередь и тормоза под пикомЛучше, но база ещё грузитсяБаза разгружена, держит пик
Объём каталога До тысяч позицийДо сотен тысяч позицийМиллионы позиций
Этапы работы

Как мы оптимизируем фильтр и поиск

Идём от диагностики к измеримому результату: сначала находим узкие места, затем перестраиваем фасет, выносим поиск на движок и закрепляем эффект кешем.

01

Диагностика фильтра и поиска

Снимаем медленные запросы, смотрим план выполнения, объём каталога, состояние фасетного индекса и качество выдачи.

02

Пересборка фасетного индекса

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

03

Перенос поиска на движок

Поднимаем Elasticsearch или Sphinx, индексируем каталог, настраиваем морфологию, релевантность и автодополнение.

04

Агрегации и кеш фильтра

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

05

Нагрузка и приёмка

Прогоняем фильтр и поиск под нагрузкой, замеряем отклик до и после, фиксируем результат и передаём документацию.

Сроки

Сколько занимает оптимизация

Ориентиры по срокам. Точные даты фиксируем в смете после диагностики каталога и фильтра.

2–3 дня Диагностика медленных запросов фильтра и поиска
1
3–5 дней Пересборка фасетного индекса и проверка счётчиков
2
1–2 недели Поднятие движка, индексация каталога, морфология
3
3–5 дней Агрегации, автодополнение и кеширование фильтра
4
2–3 дня Нагрузочное тестирование, замеры и приёмка
5
Тарифы

Сколько стоит оптимизация фильтров и поиска

Стоимость зависит от объёма каталога, числа свойств в фильтре и выбранного движка. Ниже — ориентиры; точную смету присылаем после диагностики, бесплатно.

Фасет и фильтр
от 60 000 ₽
Срок: от 1 недели

Пересборка фасетного индекса и ускорение умного фильтра без внешнего движка.

  • Диагностика медленных запросов
  • Пересборка фасетного индекса
  • Автопересборка по событию
  • Кеширование результатов фильтра
Популярный выбор
Поиск на движке
от 140 000 ₽
Срок: от 2–3 недель

Перенос поиска на Elasticsearch или Sphinx с морфологией и автодополнением.

  • Поднятие и настройка движка
  • Индексация каталога
  • Морфология, опечатки, синонимы
  • Автодополнение и подсказки
  • Релевантная сортировка выдачи
Поиск под нагрузку
от 280 000 ₽
Срок: от 4 недель

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

  • Всё из тарифа «Поиск на движке»
  • Агрегации и фасеты на движке
  • Проектирование под нагрузку
  • Отказоустойчивость индекса
  • Сопровождение и развитие
Фасет и фильтр от 60 000 ₽
Срок: от 1 недели

Пересборка фасетного индекса и ускорение умного фильтра без внешнего движка.

  • Диагностика медленных запросов
  • Пересборка фасетного индекса
  • Автопересборка по событию
  • Кеширование результатов фильтра
Популярный Поиск на движке от 140 000 ₽
Срок: от 2–3 недель

Перенос поиска на Elasticsearch или Sphinx с морфологией и автодополнением.

  • Поднятие и настройка движка
  • Индексация каталога
  • Морфология, опечатки, синонимы
  • Автодополнение и подсказки
  • Релевантная сортировка выдачи
Поиск под нагрузку от 280 000 ₽
Срок: от 4 недель

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

  • Всё из тарифа «Поиск на движке»
  • Агрегации и фасеты на движке
  • Проектирование под нагрузку
  • Отказоустойчивость индекса
  • Сопровождение и развитие

Дополнительные опции

Настройка синонимов и словаря опечаток от 25 000 ₽
Поиск по нескольким складам и регионам от 45 000 ₽
Аналитика поисковых запросов и пустых выдач от 40 000 ₽
Расчёт выгоды

Сколько теряет каталог на медленном фильтре

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

Потери выручки в месяц 0 ₽

Оценка по формуле: сессии × доля уходов в процентах × средний чек × 0,03 (доля сессий, которые реально доходили бы до заказа). Это ориентир потерь, а не гарантия.

Умный расчёт

Подберём решение под ваш каталог за пару шагов

Ответьте на несколько вопросов о каталоге, фильтре и поиске — предложим подходящий движок и пришлём ориентир по стоимости и срокам.

Вопрос 1
Загрузка вопроса…

Примеры работ

Кейсы по фильтру и поиску

Электроника

Фильтр на 600 000 SKU вместо секунд — за миллисекунды

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

×25Отклик фильтра
<80 мсПоиск
3 неделиСрок
Автозапчасти

Поиск по артикулам и кодам с морфологией на Sphinx

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

−70%Пустых выдач
1,2 млнГлубина каталога
2 неделиСрок
B2B-каталог

Агрегации и счётчики фильтра на стороне движка

Перенесли счётчики и группировки на Elasticsearch, база разгрузилась, сайт держит пиковый трафик.

−60%Нагрузка на БД
+18%Конверсия каталога
4 неделиСрок
Отзывы клиентов

Что говорят о результате

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

Алексей К. Руководитель e-commerce, электроника

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

Марина С. Владелец магазина автозапчастей

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

Дмитрий В. Технический директор B2B-портала
Почему мы

На что можно рассчитывать по договору

Замеры до и после

Показываем отклик фильтра и поиска в цифрах до работ и после — результат видно, а не на словах.

Подбираем движок под задачу

Где-то достаточно Sphinx, где-то нужен Elasticsearch с агрегациями — не навязываем лишнее.

Без поломки ядра и обновлений

Логику выносим в модули и обработчики, не правим ядро — обновления Битрикса проходят без конфликтов.

Код и доступы — ваши

Передаём исходники, настройки движка и документацию, без привязки к подрядчику.

База знаний

Частые ситуации с фильтром и поиском — и наш ответ

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

Фасет

Умный фильтр на большом каталоге думает несколько секунд

Наш ответ

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

Поиск

Поиск отдаёт пустую выдачу там, где товар есть

Наш ответ

Штатный поиск плохо работает со словоформами и опечатками, поэтому запрос не совпадает с карточкой. Выносим поиск на Elasticsearch или Sphinx с морфологией, синонимами и обработкой опечаток — покупатель находит товар даже при неточном запросе.

Нагрузка

В распродажу фильтр кладёт базу и тормозит весь сайт

Наш ответ

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

Глоссарий

Что такое фасетный индекс простыми словами

Наш ответ

Фасетный индекс — это заранее подготовленная плоская таблица связок «товар — свойство — значение», по которой умный фильтр мгновенно считает, сколько товаров остаётся при каждом выборе. Без него система вычисляет это на лету тяжёлыми запросами, с ним — берёт готовые цифры из индекса.

Глоссарий

Чем Elasticsearch отличается от Sphinx

Наш ответ

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

Экспертный взгляд

Фасет, Sphinx или Elasticsearch: что выбрать под ваш каталог

Когда фильтр и поиск начинают тормозить, у владельца магазина обычно три развилки: докрутить штатный фасетный индекс, поднять лёгкий Sphinx или перейти на Elasticsearch с полным набором поисковых возможностей. Соблазн велик сразу взять самое мощное решение, но это не всегда оправдано: Elasticsearch требует ресурсов и сопровождения, а на среднем каталоге с ним справится и грамотно настроенный фасет. И наоборот — на каталоге в миллионы позиций со сложным полнотекстовым поиском фасета не хватит, сколько его ни перестраивай. Ниже разбираем, как мы выбираем решение под конкретный каталог и почему диагностика важнее громкого названия движка.

Почему штатный фильтр упирается в каталог

Умный фильтр Битрикса по своей природе считает доступные значения свойств динамически. Пользователь отметил бренд — система должна понять, сколько товаров этого бренда есть в выбранной категории и какие значения цвета, размера и цены ещё доступны. На каталоге в пару тысяч позиций это быстрые запросы. На каталоге в сотни тысяч SKU с десятками свойств каждый такой пересчёт превращается в тяжёлое соединение по таблицам свойств, и фильтр начинает думать секундами. Фасетный индекс снимает основную часть боли: он заранее раскладывает связки товаров и свойств в плоскую структуру, по которой счётчики берутся почти мгновенно.

Но у фасета есть пределы. Он отлично считает счётчики по свойствам, но не делает полнотекстовый поиск с морфологией, плохо подходит для сложной релевантности и не разгружает базу от тяжёлых поисковых запросов по описаниям. Когда покупатель ищет «беспроводные наушники с шумодавом» свободным текстом, фасет тут бессилен — нужен движок, который понимает словоформы, синонимы и опечатки. Поэтому фасет и внешний движок не конкуренты, а слои одного решения: фасет отвечает за фильтр по свойствам, движок — за поиск и сложные агрегации.

Где проходит граница между Sphinx и Elasticsearch

Sphinx — это рабочая лошадка полнотекстового поиска. Он лёгкий, быстро индексирует каталог, хорошо работает с русской морфологией и недорого обслуживается. Если задача — ускорить поиск по названиям, артикулам и описаниям, добавить морфологию и обработку опечаток, а каталог укладывается в разумные объёмы, Sphinx часто оптимальный выбор: он даёт мгновенный поиск без тяжёлой инфраструктуры. Многие магазины автозапчастей, книг и расходников прекрасно живут именно на Sphinx годами.

Elasticsearch выходит вперёд там, где нужны не только поиск, но и богатые агрегации, гибкая релевантность, фасетный поиск прямо на стороне движка и масштабирование на очень большие каталоги. Если вы хотите считать счётчики фильтра, группировки и аналитику поисковых запросов на движке, строить сложные правила ранжирования, держать миллионы позиций и кластеризовать поиск для отказоустойчивости — это территория Elasticsearch. Он требует больше ресурсов и сопровождения, но взамен закрывает сценарии, которые Sphinx не тянет. Если вы сомневаетесь, какой движок подойдёт, начните с аудита каталога, фильтров и поиска — по его итогам решение становится очевидным.

Как мы выбираем решение под каталог

Мы никогда не начинаем с движка — мы начинаем с замеров. Первым делом снимаем медленные запросы фильтра и поиска, смотрим план их выполнения, оцениваем объём каталога, число свойств в фильтре, наличие и актуальность фасетного индекса, качество текущей выдачи. На основе этих цифр становится видно, где узкое место: иногда достаточно перестроить фасет и настроить кеш, и фильтр перестаёт тормозить без всякого движка. Иногда фасет в порядке, но поиск отдаёт пустые выдачи из-за морфологии — тогда нужен Sphinx. А иногда каталог огромен, а нагрузка на базу критична — тогда оправдан Elasticsearch с агрегациями.

Такой подход бережёт ваш бюджет и сопровождение. Нет смысла поднимать тяжёлый кластер Elasticsearch там, где задачу решает пересборка фасета за неделю. И наоборот, нет смысла бесконечно тюнить фасет на каталоге, который давно перерос реляционную базу. Оптимизация фильтров и поиска — это часть общей работы над скоростью каталога, поэтому мы смотрим на неё в связке с остальными узкими местами. Нередко она идёт вместе с оптимизацией каталога на 100 тысяч — 1 миллион товаров, где фильтр и поиск — лишь одна из точек роста наряду с выборками, кешем и базой.

Что важно сделать правильно при переносе на движок

Перенос поиска на внешний движок — это не просто «поставить и забыть». Критично настроить индексацию так, чтобы данные в движке не расходились с каталогом: при изменении цены, остатка или свойства товара индекс должен обновляться, иначе покупатель увидит в выдаче то, чего уже нет. Мы настраиваем инкрементальную индексацию по событиям и фоновую полную переиндексацию по расписанию, чтобы движок всегда отражал актуальный каталог. Отдельно прорабатываем морфологию и синонимы под вашу тематику: словарь для магазина одежды и для магазина стройматериалов будут разными.

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

Как мы держим базу разгруженной

Один из главных эффектов переноса поиска на движок — разгрузка основной базы. Пока поиск и агрегации считаются в реляционной базе, они конкурируют за неё с заказами, корзинами и оплатами. В пик, когда десятки пользователей одновременно крутят фильтр и ищут товар, очередь тяжёлых запросов кладёт не только каталог, а весь сайт. Когда поиск уходит на Elasticsearch или Sphinx, поисковая нагрузка живёт отдельно от транзакционной: база занимается заказами, движок — поиском. Это та же логика, что и при выносе других тяжёлых операций — например, при комплексном ускорении каталога и e-commerce, где разгрузка базы идёт сразу по нескольким направлениям.

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

Возражения, которые мы слышим чаще всего

«Нам хватит штатного поиска, зачем городить движок». Иногда действительно хватает, и мы честно об этом скажем после диагностики. Но если у вас большой каталог, поиск с морфологией и опечатками и поток пустых выдач, штатные средства упрутся в потолок, и каждый месяц на медленном поиске — это потерянные заказы. Движок здесь не роскошь, а инструмент, который окупается ростом конверсии каталога.

«Внешний движок сложно поддерживать». Sphinx в обслуживании очень лёгкий, а Elasticsearch требует внимания, но мы закладываем сопровождение и автоматическую переиндексацию с первого дня, поэтому в ежедневной работе движок не требует ручного труда. Мы передаём документацию и настройки, так что развивать решение сможет как наша команда, так и ваши специалисты.

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

Сценарии, под которые мы настраиваем поиск

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

Для B2B-каталогов на первый план выходит нагрузка и агрегации: десятки менеджеров и клиентов одновременно крутят фильтр по огромному ассортименту, и без переноса счётчиков на движок база не выдерживает. Для маркетплейсов и агрегаторов критична релевантность и аналитика поисковых запросов, потому что от качества выдачи напрямую зависит, дойдёт ли покупатель до товара среди миллионов позиций. Мы не натягиваем один шаблон на все каталоги, а собираем поиск под вашу модель: где-то достаточно точного фасета, где-то нужен полнотекстовый движок с тонкой настройкой ранжирования под бизнес-приоритеты.

Чем оптимизация выгоднее альтернатив

У владельца большого каталога обычно три пути решить проблему медленного фильтра: бесконечно наращивать мощность сервера, поставить готовый платный модуль поиска из маркетплейса или сделать аккуратную оптимизацию под свой каталог. Наращивание железа лечит симптом, а не причину: тяжёлые запросы остаются тяжёлыми, и с ростом каталога вы снова упираетесь в потолок, переплачивая за сервер. Готовый модуль стартует быстро, но навязывает свою логику фасетов и поиска, плохо ложится на нестандартный каталог и часто не разгружает базу, а лишь маскирует проблему до следующего пика нагрузки.

Оптимизация под ваш каталог лишена этих ограничений. Мы перестраиваем именно те узлы, которые тормозят у вас, выносим поиск на движок, который подходит вашему объёму, и настраиваем релевантность под ваши бизнес-приоритеты. Вы платите за решение конкретной проблемы один раз, а не за помесячную аренду чужого модуля или за лишние сервера. В долгую этот путь оказывается и дешевле, и гибче, потому что решение растёт вместе с каталогом и остаётся полностью под вашим контролем.

Что вы получаете по итогу

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

Начните с разговора и бесплатной диагностики. Расскажите о вашем каталоге — объёме, числе свойств в фильтре, том, как сейчас работают поиск и фасет, — и мы снимем замеры, найдём узкие места и предложим решение под вашу задачу: пересборку фасета, Sphinx или Elasticsearch. По итогам диагностики вы получите честную картину, что даст наибольший эффект и за какой срок окупится. Обсудим ваш проект — и сделаем подбор товара в каталоге мгновенным.

Вопросы и ответы

Частые вопросы об оптимизации фильтров и поиска

Что такое умный фильтр и фасетный индекс простыми словами? +

Умный фильтр — это набор свойств в каталоге, по которым покупатель сужает выбор: бренд, цена, размер, цвет. Чтобы при каждом выборе мгновенно показывать, сколько товаров остаётся, Битрикс использует фасетный индекс — заранее подготовленную плоскую таблицу связок «товар — свойство — значение». По ней счётчики берутся почти мгновенно, без тяжёлых запросов к базе на лету.

Чем поиск на движке отличается от штатного поиска Битрикса? +

Штатный поиск ищет по индексу самого Битрикса и слабо работает со словоформами, опечатками и сложной релевантностью на больших каталогах. Внешний движок — Elasticsearch или Sphinx — специально заточен под полнотекстовый поиск: понимает морфологию, синонимы и опечатки, ранжирует выдачу по нужным правилам и отдаёт результат за десятки миллисекунд даже на миллионах позиций.

Что значит «морфология» в поиске? +

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

Что такое агрегации в контексте фильтра? +

Агрегации — это подсчёты и группировки на стороне движка: сколько товаров каждого бренда, какой диапазон цен, сколько позиций в каждой категории. Это те самые счётчики у галочек фильтра. Когда агрегации считает движок, а не реляционная база, фильтр остаётся быстрым даже на огромном каталоге и под нагрузкой.

Кому нужна оптимизация фильтров и поиска? +

Интернет-магазинам и B2B-каталогам с сотнями тысяч и миллионами позиций, десятками свойств в фильтре и полнотекстовым поиском по названиям и описаниям. Чем больше каталог и чем чувствительнее трафик к скорости, тем заметнее эффект: быстрый фильтр и точный поиск возвращают покупателей, которые иначе ушли бы из-за тормозов.

Чем Elasticsearch отличается от Sphinx и что выбрать? +

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

Нужно ли отдельное оборудование под движок? +

Sphinx нетребователен и часто живёт на том же сервере, что и сайт. Elasticsearch на больших каталогах лучше выносить на отдельные ресурсы или кластер для отказоустойчивости. На диагностике мы оцениваем объём данных и нагрузку и предлагаем конфигурацию, которая закроет задачу без переплаты за лишние мощности.

Как движок узнаёт об изменении цен и остатков? +

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

Поддерживается ли поиск по артикулам и кодам? +

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

Можно ли настроить синонимы под нашу тематику? +

Да. Мы заводим словарь синонимов под вашу нишу, чтобы движок понимал, что «холодильник» и «рефрижератор» или «кроссовки» и «кеды» в вашем каталоге близки. Словарь опечаток и синонимов настраивается под тематику отдельно — он сильно влияет на полноту выдачи.

Насколько ускорится фильтр после оптимизации? +

Зависит от исходного состояния, но на больших каталогах мы регулярно видим ускорение в десятки раз: фильтр, который думал секунды, начинает отвечать за доли секунды, поиск с автодополнением укладывается в сотню миллисекунд. Точные цифры замеряем до и после работ, чтобы эффект был виден в числах.

Почему в распродажу фильтр кладёт весь сайт? +

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

Как кеширование фильтра влияет на актуальность данных? +

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

Замеряете ли вы результат? +

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

Останется ли фильтр быстрым при росте каталога? +

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

Почему поиск отдаёт пустую выдачу, хотя товар есть? +

Чаще всего штатный поиск не понимает словоформу или опечатку в запросе, поэтому не совпадает с карточкой товара. Внешний движок с морфологией, синонимами и обработкой опечаток находит товар даже при неточном запросе. После переноса поиска поток пустых выдач обычно падает в разы.

Можно ли поднять нужные товары вверх выдачи? +

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

Что такое автодополнение и зачем оно нужно? +

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

Учитываете ли вы аналитику поисковых запросов? +

Да, как отдельную опцию. Мы можем собирать, что ищут покупатели и где получают пустые выдачи. Это показывает, каких товаров не хватает в каталоге, какие синонимы стоит добавить и как улучшить релевантность. Аналитика поиска — недооценённый источник роста продаж.

Сломается ли решение после обновления Битрикса? +

Нет. Логику поиска и интеграцию с движком мы выносим в собственные модули и обработчики, не правя ядро напрямую. Поэтому обновления платформы проходят без конфликтов, а фильтр и поиск продолжают работать. Это закладывается в архитектуру с первого дня.

Сколько занимает оптимизация по времени? +

Пересборка фасета и ускорение фильтра — от недели. Перенос поиска на движок с морфологией и автодополнением — обычно две-три недели. Полное решение с агрегациями под нагрузку для каталога на миллионы позиций — от четырёх недель. Точные сроки фиксируем в смете после диагностики.

Можно ли внедрять поэтапно? +

Да. Сначала пересобираем фасет и настраиваем кеш — это уже ускоряет фильтр. Затем выносим поиск на движок, потом добавляем агрегации и аналитику. Каждый этап даёт измеримый эффект, и вы платите за понятные блоки, а не за абстрактный проект целиком.

Что мы получаем по итогу работ? +

Быстрый умный фильтр и точный поиск, настроенный движок Elasticsearch или Sphinx, исходный код доработок, настройки и документацию. Решение остаётся вашим без привязки к подрядчику: развивать его сможет как наша команда, так и любой другой исполнитель.

Что если у нас нестандартный или сильно доработанный каталог? +

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

Начать проект

Ускорим ваш фильтр и поиск?

Расскажите о вашем каталоге и фильтре — снимем замеры, найдём узкие места и предложим решение: пересборку фасета, Sphinx или Elasticsearch. Смету пришлём после бесплатной диагностики.

  • Ответим в течение рабочего дня
  • Бесплатный аудит процессов и расчёт
  • NDA и фиксированная смета