Удаление свойства элемента из поискового индекса с помощью события BeforeIndex
<? AddEventHandler("search", "BeforeIndex", "BeforeIndexHandler"); function BeforeIndexHandler($arFields) { $arrIblock = array(2); //ID инфоблоков, для которых производить модификацию $arDelFields = array("DETAIL_TEXT", "PREVIEW_TEXT"); //стандартные поля, которые нужно исключить if (CModule::IncludeModule('iblock') && $arFields["MODULE_ID"] == 'iblock' && in_array($arFields["PARAM2"], $arrIblock) && intval($arFields["ITEM_ID"]) > 0){ $dbElement = CIblockElement::GetByID($arFields["ITEM_ID"]); if ($arElement = $dbElement->Fetch()){ foreach ($arDelFields as $value){ if (isset($arElement[$value]) && strlen($arElement[$value]) > 0){ $arFields["BODY"] = str_replace(CSearch::KillTags($arElement[$value]), "", CSearch::KillTags($arFields["BODY"])); } } } return $arFields; } } ?>
Этот код сработает либо при полной переиндексации сайта либо при сохранении элемента инфоблока.
Комментарии (2)
Отличный способ, большое спасибо!
29 ноября, 2016 в 15:06Мы рады, что наши наработки пригодились кому-то ещё.
27 апреля, 2017 в 10:44Доброго дня! А не подскажете, как исключить из поиска раздел?
26 сентября, 2015 в 11:19