Удаление свойства элемента из поискового индекса с помощью события 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