Быстрый умный фильтр и поиск на Битрикс для больших каталогов
Ускоряем умный фильтр и поиск на 1С-Битрикс: фасетный индекс, внешние движки Elasticsearch и Sphinx, морфология и релевантность, автодополнение и агрегации. Подбор товара на каталогах в сотни тысяч позиций становится мгновенным.
Что мы делаем по оптимизации фильтров и поиска
Собираем решение под ваш каталог — от пересборки фасетного индекса до переноса поиска на внешний движок с морфологией, автодополнением и агрегациями.
Оптимизация фильтров и поиска на Битрикс: фасеты, Elasticsearch и Sphinx
Умный фильтр и поиск — это та часть интернет-магазина, через которую покупатель находит товар. На каталоге в несколько тысяч позиций штатные средства 1С-Битрикс справляются, но как только ассортимент вырастает до сотен тысяч и миллионов SKU, фильтр начинает думать секундами, а поиск выдаёт нерелевантную выдачу или вовсе пустые страницы. Оптимизация фильтров и поиска возвращает каталогу мгновенный отклик: пересборка фасетного индекса, перенос тяжёлых выборок на внешние поисковые движки Elasticsearch и Sphinx, настройка морфологии, релевантности, автодополнения и агрегаций. В итоге подбор товара на большом каталоге снова занимает доли секунды.
Корень проблемы в том, как устроен расчёт доступных значений фильтра. Каждый раз, когда пользователь отмечает галочку свойства, система должна понять, сколько товаров останется и какие значения других свойств ещё доступны. На большом каталоге без подготовленного индекса это превращается в тяжёлые запросы к базе с множеством соединений по таблицам свойств. Фасетный индекс Битрикса заранее раскладывает эти связки в плоскую структуру, поэтому фильтр отвечает за миллисекунды. Когда же фасета не хватает — слишком много свойств, диапазоны цен, полнотекстовый поиск по описаниям — на сцену выходят внешние движки.
Что именно тормозит и как мы это лечим
Мы разбираем умный фильтр и поиск по слоям и оптимизируем каждый из них. Сначала диагностируем медленные запросы фильтра и поиска: смотрим план выполнения, объём данных, наличие фасетного индекса и его актуальность. Затем перестраиваем фасет так, чтобы он покрывал реальные свойства каталога и пересобирался по событию, а не вручную. Тяжёлый полнотекстовый поиск с морфологией выносим в Elasticsearch или Sphinx, которые специально заточены под такие задачи и отдают релевантную выдачу с подсветкой и подсказками за десятки миллисекунд. Поверх настраиваем кеширование фильтра, чтобы повторные запросы вообще не доходили до базы.
Основные узлы, которые мы оптимизируем:
- фасетный индекс умного фильтра — полнота свойств, актуальность и автоматическая пересборка по событию;
- полнотекстовый поиск с морфологией, опечатками, синонимами и релевантной сортировкой выдачи;
- внешние движки Elasticsearch и Sphinx для поиска и агрегаций по большому каталогу;
- автодополнение и живые подсказки в поисковой строке с мгновенным откликом;
- агрегации и счётчики доступных значений фильтра без тяжёлых запросов к базе;
- кеширование результатов фильтра и поиска с корректным сбросом при изменении данных.
Когда нужна оптимизация фильтров и поиска
Оптимизация окупается там, где каталог большой, а трафик чувствителен к скорости. Это интернет-магазины и B2B-каталоги с сотнями тысяч и миллионами позиций, с десятками свойств в фильтре, диапазонами цен и характеристик, полнотекстовым поиском по названиям и описаниям. Чем больше у вас SKU и чем сложнее фильтр, тем дороже обходится каждая лишняя секунда отклика: пользователь, который ждёт пересчёт фасетов больше двух секунд, уходит, не подобрав товар. Поиск, который не понимает морфологию и опечатки, отдаёт пустую выдачу там, где товар на складе есть.
Особенно остро проблема стоит на пиковых нагрузках — в распродажи и сезон. Когда десятки пользователей одновременно крутят фильтр, тяжёлые запросы выстраиваются в очередь, нагружают базу и тормозят весь сайт, а не только каталог. Перенос поиска и агрегаций на внешний движок снимает эту нагрузку с основной базы: Elasticsearch и Sphinx держат поисковые запросы отдельно, поэтому фильтр остаётся быстрым даже под нагрузкой, а сайт не падает в час пик.
Что даёт перенос на Elasticsearch и Sphinx
Внешние поисковые движки решают то, с чем реляционная база справляется плохо. Sphinx — лёгкий и быстрый движок полнотекстового поиска с морфологией, который хорошо ложится на каталог и недорого обслуживается. Elasticsearch — мощная поисковая система с богатыми возможностями релевантности, агрегаций, фасетного поиска и аналитики, которая масштабируется на очень большие каталоги и сложные сценарии. Мы подбираем движок под вашу задачу и объём: где-то достаточно Sphinx для быстрого поиска, где-то нужен Elasticsearch с фасетами и агрегациями прямо на стороне движка.
Результат оптимизации фильтров и поиска — каталог, который реагирует мгновенно. Покупатель набирает запрос и видит подсказки с первой буквы, отмечает свойства и моментально получает обновлённую выдачу с актуальными счётчиками, находит товар даже с опечаткой в запросе. Поиск понимает словоформы и синонимы, релевантные позиции стоят вверху выдачи. База разгружена, сайт держит пиковый трафик, а конверсия каталога растёт, потому что покупатель доходит до товара, а не уходит из-за тормозов.
Путь запроса от поисковой строки до мгновенной выдачи
Запрос покупателя уходит не в перегруженную базу, а во внешний поисковый движок: он применяет морфологию, считает фасеты и агрегации и возвращает релевантную выдачу за десятки миллисекунд.
Штатный фильтр, фасет и внешний движок поиска
Чем больше каталог, тем сильнее разница между штатным фильтром, фасетным индексом и поиском на внешнем движке Elasticsearch или Sphinx.
| Критерий | Штатный фильтр | Фасет Битрикса | Elasticsearch / Sphinx |
|---|---|---|---|
| Скорость фильтра и поиска | Секунды на большом каталоге | Доли секунды на фасете | Десятки миллисекунд |
| Качество поиска | Базовый, без морфологии | Штатный поиск по индексу | Морфология, опечатки, синонимы |
| Агрегации и счётчики | Нет, тяжёлые запросы к базе | Счётчики из фасета | Агрегации на стороне движка |
| Поведение под нагрузкой | Очередь и тормоза под пиком | Лучше, но база ещё грузится | База разгружена, держит пик |
| Объём каталога | До тысяч позиций | До сотен тысяч позиций | Миллионы позиций |
Как мы оптимизируем фильтр и поиск
Идём от диагностики к измеримому результату: сначала находим узкие места, затем перестраиваем фасет, выносим поиск на движок и закрепляем эффект кешем.
Сколько занимает оптимизация
Ориентиры по срокам. Точные даты фиксируем в смете после диагностики каталога и фильтра.
Сколько стоит оптимизация фильтров и поиска
Стоимость зависит от объёма каталога, числа свойств в фильтре и выбранного движка. Ниже — ориентиры; точную смету присылаем после диагностики, бесплатно.
Пересборка фасетного индекса и ускорение умного фильтра без внешнего движка.
- Диагностика медленных запросов
- Пересборка фасетного индекса
- Автопересборка по событию
- Кеширование результатов фильтра
Перенос поиска на Elasticsearch или Sphinx с морфологией и автодополнением.
- Поднятие и настройка движка
- Индексация каталога
- Морфология, опечатки, синонимы
- Автодополнение и подсказки
- Релевантная сортировка выдачи
Полный поиск и фильтр на движке с агрегациями для каталога на миллионы позиций.
- Всё из тарифа «Поиск на движке»
- Агрегации и фасеты на движке
- Проектирование под нагрузку
- Отказоустойчивость индекса
- Сопровождение и развитие
Фасет и фильтр от 60 000 ₽
Пересборка фасетного индекса и ускорение умного фильтра без внешнего движка.
- Диагностика медленных запросов
- Пересборка фасетного индекса
- Автопересборка по событию
- Кеширование результатов фильтра
Популярный Поиск на движке от 140 000 ₽
Перенос поиска на Elasticsearch или Sphinx с морфологией и автодополнением.
- Поднятие и настройка движка
- Индексация каталога
- Морфология, опечатки, синонимы
- Автодополнение и подсказки
- Релевантная сортировка выдачи
Поиск под нагрузку от 280 000 ₽
Полный поиск и фильтр на движке с агрегациями для каталога на миллионы позиций.
- Всё из тарифа «Поиск на движке»
- Агрегации и фасеты на движке
- Проектирование под нагрузку
- Отказоустойчивость индекса
- Сопровождение и развитие
Дополнительные опции
| Настройка синонимов и словаря опечаток | от 25 000 ₽ |
| Поиск по нескольким складам и регионам | от 45 000 ₽ |
| Аналитика поисковых запросов и пустых выдач | от 40 000 ₽ |
Сколько теряет каталог на медленном фильтре
Прикиньте, сколько выручки уходит, пока покупатели бросают каталог из-за тормозов фильтра и пустых выдач поиска. Быстрый подбор товара возвращает часть этих заказов.
Оценка по формуле: сессии × доля уходов в процентах × средний чек × 0,03 (доля сессий, которые реально доходили бы до заказа). Это ориентир потерь, а не гарантия.
Подберём решение под ваш каталог за пару шагов
Ответьте на несколько вопросов о каталоге, фильтре и поиске — предложим подходящий движок и пришлём ориентир по стоимости и срокам.
Кейсы по фильтру и поиску
Что говорят о результате
На что можно рассчитывать по договору
Частые ситуации с фильтром и поиском — и наш ответ
Это не общие советы из интернета, а закономерности из реальных проектов по тяжёлым каталогам. Каждый ответ — позиция нашей команды.
Фасет, 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 и фиксированная смета