Настройка фасетного поиска 1С-Битрикс
Фасетный поиск (умный фильтр) в Битрикс — это механизм фильтрации каталога с мгновенным подсчётом количества товаров по каждому значению фильтра. При некорректной настройке умный фильтр работает медленно, потребляет много памяти или показывает нулевые счётчики.
Что такое фасетный индекс
Стандартный компонент bitrix:catalog.smart.filter при первом запросе строит фасетный индекс — предварительно рассчитанные данные о количестве товаров для каждого значения каждого свойства. Индекс хранится в таблицах b_iblock_facet_* и b_iblock_facet_data_*.
Без индекса каждый запрос фильтра — это тяжёлые JOIN-запросы к b_iblock_element_property. С индексом — лёгкий SELECT по заранее рассчитанным данным.
Включение умного фильтра
Компонент bitrix:catalog.smart.filter подключается на страницу раздела каталога. Ключевые параметры:
$APPLICATION->IncludeComponent('bitrix:catalog.smart.filter', '', [
'IBLOCK_ID' => 5,
'IBLOCK_TYPE' => 'catalog',
'PRICE_CODE' => ['BASE'],
'PROPERTY_CODE' => ['COLOR', 'SIZE', 'BRAND'], // свойства для фильтра
'FILTER_VIEW_MODE' => 'POPUP', // VISIBLE или POPUP
'AJAX_MODE' => 'Y',
'SEF_MODE' => 'Y',
'SECTION_ID' => $arResult['ID'],
'SECTION_CODE' => $arResult['CODE'],
]);
Построение и сброс фасетного индекса
После изменения товаров (новые свойства, изменение значений, массовый импорт) индекс нужно перестроить:
Магазин → Каталог → Дополнительно → Пересчёт умного фильтра
Или программно:
\CIBlockCatalogTools::ReIndexFacets($iblockId);
При больших каталогах (100 000+ товаров) пересчёт занимает несколько минут. Рекомендуется запускать через агент в ночное время при массовых обновлениях.
Настройка свойств для фасетного индекса
Не все свойства нужны в фильтре. Для включения свойства в умный фильтр:
Контент → Инфоблоки → [инфоблок] → Свойства → [свойство] → Участвует в умном фильтре
Правила выбора свойств для фильтра:
- Включать: цвет, размер, бренд, материал, категория, диапазон цен
- Не включать: уникальные идентификаторы, описания, артикулы
- Свойства типа «Список» и «Привязка к элементам» индексируются эффективнее, чем «Строка»
SEF-режим и URL фильтра
В SEF-режиме параметры фильтра кодируются в URL вида /catalog/obuv/color-chernyj/size-42/. Настройка в параметрах компонента SEF_MODE = Y и шаблонах URL в настройках компонента каталога.
Для корректной работы необходимо согласованно настроить SEF-шаблоны в компоненте каталога и умном фильтре.
Производительность
При медленной работе фильтра проверить:
- Наличие индекса (
EXPLAINзапросов кb_iblock_facet_*) - Размер таблиц фасетного индекса
- Включён ли
USE_CACHE = Yв параметрах компонента - Актуален ли индекс (не было ли массовых обновлений без пересчёта)
Сроки выполнения
Настройка умного фильтра с нужными свойствами и SEF-режимом — 4–8 часов. Оптимизация производительности для больших каталогов — 1–2 рабочих дня.







