Ответы пользователя по тегу 1С-Битрикс
  • Как сделать поиск по строгому сравнению в битриксе?

    haanastasia
    @haanastasia Автор вопроса
    джуниор программист
    Оказалось, что поиск осуществляется не только через заголовки, но и по описанию. Выключив поиск по описанию и анонсу - все заработало.
    Для этого добавила код в файл Init.php
    AddEventHandler("search", "BeforeIndex", "BeforeIndexHandler");
    	function BeforeIndexHandler($arFields) {
    	    $arrIblock = array(айди инфоблока);
    	    $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;
    	    }
    	}

    А дальше запустила полную переиндексацию.
    Ответ написан
    Комментировать