Настройка модуля поиск bitrix. Требуется чтобы искал товары(элементы инфоблока) по названию категории(секции или раздела инфоблока).

Предположительно для включения названий секций инфоблока для работы с стандартным модулем поиска битрикс в настройках инфоблока(а именно в типах инфоблока) есть флажок "Индексировать разделы для модуля поиска", при этом к желаемому результату установка этой галочки не привела(в том числе после переиндексации). Проблема с этой галочкой возникла не только у меня исходя из обсуждения по ссылке https://toster.ru/q/634557

Для понимания как работает модуль поиска в битрикс рекомендую ознакомиться с информацией на следующих страницах:

В первой приведённой ссылке(на сайте Тостер) в комментариях к первому решению было найдено решение задачи которое и будет описано далее, с примером кода.

Для того чтобы управлять поисковым индексом в файле init.php можно создать обработчик BeforeIndex. Таким образом используя массив $arFields мы можем управлять информацией которая попадёт в поисковый индекс. В данном случаи я буду дописывать нужные мне фразы с тело индекса, а именно в $arFields["BODY"].

В приведённом ниже примере используется самописный класс myGetSectionInfoById для более удобного получения информации из секций инфоблока. Код данного класса доступен по ссылке: http://blog.ivru.net/?id=72.

В моей задаче требовалось не только добавить к поисковому индексу для каждого элемента инфоблока(а именно товара) название секции, а так же дополнительное название UF_NAME2(это название содержало пояснение типа товара при выводе списка товара, например для категории "Комплекты детского постельного белья" UF_NAME2 выглядит так - "Комплект детского постельного белья").

Так же обращу внимание, что именно под эту задачу я создавал init.php в папке сайта, то-есть bitrix/php_interface/s1/ а прямо в папке php_interface, то есть по адресу bitrix/php_interface/ иначе у меня не срабатывало.

Кроме того при решении задачи у меня зависала переиндексация(которая находится в административной панели bitrix в Настройки - Поиск - Переиндексация) при снятии галочки "Переиндексировать только измененные", а переиндексация только изменённых элементов нужного эффекта не давала. Поэтому я зашёл в каждый товар и добавил 1 символ к подробному описанию а позже его удалил.

Код файла init.php для добавления к поисковому индексу товаров названий секций инфоблока.

Вы так же можете прочитать следующие статьи: