+7 495 008 8452 пн.-пт. 10:00 – 17:00
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


Удаляем из поискового индекса произвольные поля элемента инфоблока

Доброго времени суток!



Часто бывает, что на сайт выгружаются каталоги товаров, и например, в анонсе или детальном представлении какого-то товара дублируется информация. Штатно модуль поиска всё честно добавляет в поисковый индекс, не обращая информации на дубли.





Хочу представить Вам одно из решений исключения произвольного поля инфоблока из поискового индекса:



<?
AddEventHandler("search", "BeforeIndex", "BeforeIndexHandler");  
function BeforeIndexHandler($arFields) {
    $arrIblock = array(2, 3);   //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 ($arElement[$value], "", $arFields["BODY"]);       
            }          
         }             
      }             
      return $arFields;       
   } 
   } 
?>


Назад в раздел

Подписаться на новые материалы раздела:












CAPTCHA