Setting up faceted search in 1C-Bitrix

Our company is engaged in the development, support and maintenance of Bitrix and Bitrix24 solutions of any complexity. From simple one-page sites to complex online stores, CRM systems with 1C and telephony integration. The experience of developers is confirmed by certificates from the vendor.
Our competencies:
Development stages

Faceted Search Configuration in 1C-Bitrix

Faceted search (smart filter) in Bitrix is a filtering mechanism with instant count of products for each filter value. With incorrect configuration, smart filter works slowly, consumes excessive memory, or shows zero counters.

What is Faceted Index

Standard component bitrix:catalog.smart.filter on first request builds faceted index — precalculated data about product count for each value of each property. Index is stored in tables b_iblock_facet_* and b_iblock_facet_data_*.

Without index, each filter request is heavy JOIN queries to b_iblock_element_property. With index — light SELECT from precalculated data.

Enabling Smart Filter

Component bitrix:catalog.smart.filter is connected to catalog section page. Key parameters:

$APPLICATION->IncludeComponent('bitrix:catalog.smart.filter', '', [
    'IBLOCK_ID'           => 5,
    'IBLOCK_TYPE'         => 'catalog',
    'PRICE_CODE'          => ['BASE'],
    'PROPERTY_CODE'       => ['COLOR', 'SIZE', 'BRAND'], // properties for filter
    'FILTER_VIEW_MODE'    => 'POPUP', // VISIBLE or POPUP
    'AJAX_MODE'           => 'Y',
    'SEF_MODE'            => 'Y',
    'SECTION_ID'          => $arResult['ID'],
    'SECTION_CODE'        => $arResult['CODE'],
]);

Building and Resetting Faceted Index

After changing products (new properties, value changes, bulk import), index needs to be rebuilt:

Shop → Catalog → Additional → Recalculate Smart Filter

Or programmatically:

\CIBlockCatalogTools::ReIndexFacets($iblockId);

On large catalogs (100,000+ products) recalculation takes several minutes. Recommended to run via agent at night during bulk updates.

Configuring Properties for Faceted Index

Not all properties need to be in filter. To include property in smart filter:

Content → Infoblocks → [infoblock] → Properties → [property] → Participate in Smart Filter

Rules for choosing filter properties:

  • Include: color, size, brand, material, category, price range
  • Do not include: unique identifiers, descriptions, article numbers
  • Properties type "List" and "Infoblock Element Binding" are indexed more efficiently than "String"

SEF Mode and Filter URL

In SEF mode filter parameters are encoded in URLs like /catalog/shoes/color-black/size-42/. Configuration in component parameters SEF_MODE = Y and URL templates in component settings.

For correct operation you must consistently configure SEF templates in catalog component and smart filter.

Performance

If filter works slowly check:

  • Index presence (EXPLAIN queries to b_iblock_facet_*)
  • Size of faceted index tables
  • Whether USE_CACHE = Y enabled in component parameters
  • If index is current (no bulk updates without recalculation)

Timeframe

Smart filter setup with necessary properties and SEF mode — 4–8 hours. Performance optimization for large catalogs — 1–2 business days.