Налаштування фасетного пошуку у 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 робочих дні.







