Исключение стандартных полей из поисковой индексации Битрикс
5 октября 2020 13:28:38
6311 просмотров
По умолчанию, поиск в Битрикс осуществляется по всем текстовым полям элементов: название, текст анонса, детальное описание. Допустим, нужно, чтобы поиск работал только по названиям элементов, а текст анонса и детальное описание нужно исключить.
Для решения, переходим в файл 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; } }Далее нужно сделать переиндексацию поиска. Заходим в Настройки, Поиск, Переиндексация, убираем галочку Переиндексировать только измененные и запускаем переиндексацию.
Материалы по теме
17 января 2019 01:37:27
Выбираем предыдущий и следующий элементы Битрикс
Иногда возникает надобность вывести для элемента своих соседей. Об этом и поговорим.
16 февраля 2018 17:12:00
Склоняем слова на PHP
Иногда бывают случаи, когда нужно вывести правильное склонение слова к какому-то числу.
Комментарии ВКонтакте