Настройка поисковых подсказок 1С-Битрикс
Поисковые подсказки — выпадающий список с вариантами при вводе запроса в строку поиска. В Битрикс подсказки реализованы через компонент bitrix:search.suggest и работают по AJAX-запросу к контроллеру поиска. Без правильной настройки подсказки либо не появляются, либо показывают нерелевантные результаты.
Как работают подсказки
При вводе каждого символа (с дебаунсом) браузер отправляет GET-запрос на /bitrix/components/bitrix/search.suggest/ajax.php с параметрами q (запрос) и lang (язык). Ответ — JSON со списком подсказок.
Источником данных для подсказок служит поисковый индекс b_search_content — те же данные, что и для основного поиска. Поэтому подсказки работают только при наличии построенного индекса.
Подключение компонента подсказок
В шаблоне формы поиска:
$APPLICATION->IncludeComponent('bitrix:search.suggest', '', [
'SITE_ID' => SITE_ID,
'START_SEARCH_FORM_ID' => 'searchForm', // ID формы поиска
'SUGGEST_MAX_COUNT' => 10, // максимум подсказок
'MIN_QUERY_LENGTH' => 3, // минимум символов для запроса
'SUGGEST_CACHE_TIME' => 3600, // кэш ответов
'FILTER_NAME' => 'arrFILTER',
'arrFILTER' => [
['MODULE_ID' => 'iblock', 'PARAM1' => 'catalog', 'PARAM2' => 5],
],
]);
Форма поиска должна иметь поле с именем q и ID, указанный в START_SEARCH_FORM_ID.
Настройка внешнего вида подсказок
Шаблон компонента находится в /bitrix/components/bitrix/search.suggest/templates/.default/. Для кастомизации — скопировать в /local/components/bitrix/search.suggest/templates/custom/ и изменить.
Стандартный шаблон выводит только текст заголовка. Часто требуется добавить картинку товара и цену — это реализуется через кастомный шаблон с дополнительным запросом к каталогу по найденным ID элементов.
Поиск по торговым предложениям (SKU)
По умолчанию поиск и подсказки работают по основным товарам, не по SKU. Для поиска по артикулам SKU нужно включить индексацию торговых предложений:
Настройки → Поиск → Дополнительные настройки — включить индексацию свойств торговых предложений, указать инфоблок офферов.
Производительность AJAX-запросов
При большом трафике AJAX-запросы подсказок могут нагружать сервер. Решения:
- Увеличить
SUGGEST_CACHE_TIME— подсказки кэшируются в файловом кэше Битрикс - Включить управляемый кэш для компонента
- Для высоконагруженных сайтов — отдать подсказки через отдельный кэшированный endpoint с TTL
Сроки выполнения
Базовая настройка подсказок с подключением компонента — 1–2 часа. Кастомный шаблон с картинками и ценами — 3–5 часов.







