Исключение стандартных полей из поисковой индексации Битрикс
5 октября 2020 13:28:38
7034 просмотра
По умолчанию, поиск в Битрикс осуществляется по всем текстовым полям элементов: название, текст анонса, детальное описание. Допустим, нужно, чтобы поиск работал только по названиям элементов, а текст анонса и детальное описание нужно исключить.
Для решения, переходим в файл bitrix/php_interface/init.php и вставляем следующий код:
AddEventHandler("search", "BeforeIndex", "IndexCustom"); function IndexCustom($arFields) { $iblock = array(1); // 1 - ID инфоблока $unset_fields = array("DETAIL_TEXT", "PREVIEW_TEXT"); // поля которые нужно исключить if(\Bitrix\Main\Loader::includeModule("iblock") && $arFields["MODULE_ID"] == "iblock" && in_array($arFields["PARAM2"], $iblock) && intval($arFields["ITEM_ID"]) > 0) { $db_res = CIblockElement::GetByID($arFields["ITEM_ID"]); if($res = $db_res->Fetch()) { foreach($unset_fields as $value) { if(isset($res[$value]) && strlen($res[$value]) > 0) { $arFields["BODY"] = str_replace(CSearch::KillTags($res[$value]), "", CSearch::KillTags($arFields["BODY"])); } } } return $arFields; } }Далее нужно сделать переиндексацию поиска. Заходим в Настройки, Поиск, Переиндексация, убираем галочку Переиндексировать только измененные и запускаем переиндексацию.
Материалы по теме
19 ноября 2021 15:10:37
Как очистить очередь писем на отправку Bitrix
Бывают случаи, когда на сайте есть проблемы с отправкой почты. Перед тем как исправлять ошибку, стоит обратить внимание на очередь писем которые не были отправлены.
29 мая 2019 16:58:08
Как привязать элемент к нескольким разделам Битрикс
Полезный момент при добавлении элемента инфоблока через API.