Warning: session_start(): open(/var/lib/php/session/sess_7757dc31afb3b45f597ac281646787ef, O_RDWR) failed: No space left on device (28) in /var/www/blog.ivru.net/config.php on line 1069

Warning: session_start(): Failed to read session data: files (path: /var/lib/php/session) in /var/www/blog.ivru.net/config.php on line 1069
Настройка модуля поиск bitrix. Требуется чтобы искал товары(элементы инфоблока) по названию категории(секции или раздела инфоблока).

Настройка модуля поиск 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 для добавления к поисковому индексу товаров названий секций инфоблока.

Комментарии

Если у Вас возникли вопросы, Вы можете задать их в форме ниже. В частности если Ваш вопрос по Bitrix и что то не получается - можно спросить. Ваш e-mail не публикуется, при этом я отвечу на него если будет что то по теме. Писать необходимо для людей - избегайте сленга, пишите орфографически правильно.

Имя:
E-mail:
Текст комментария:

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