Как отключить поиск по описаниям в Битрикс и включить по свойствам

07.09.2018  10:02

Задача: выкинуть из результатов поиска описания (чтобы они вообще не участвовали), одно решение я описывал. Есть ещё одно + понадобилось в быстром поиске search.title добавить поиск по тегам.

Решение:
в init.php добавляем обработчик
AddEventHandler("search", "BeforeIndex", "BeforeIndexHandler");  
function BeforeIndexHandler($arFields) {
$arrIblock = array(12, 13);   //ID инфоблоков, для которых производить модификацию    
$arDelFields = array("DETAIL_TEXT" , "PREVIEW_TEXT");    //стандартные поля, которые нужно исключить  
$arAddFields = array("TAGS");//поля, которые надо добавить
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'] = '';//очищаем описание
            }
         }
		 foreach ($arAddFields as $value) {
            if (isset ($arElement[$value]) && strlen($arElement[$value])> 0){        
				// $arFields['BODY'] .= ' '.$arElement[$value]; 
				$arFields['TITLE'] .= ' '.$arElement[$value]; //добавляем к заголовку, добавлять к описанию - закомментированная строка выше 
            }
         }
        }
      return $arFields;
   }
}


Запускаем полную переиндексацию поиска и теперь быстрый поиск ищет и по тегам. Небольшой минус, что теги подставляются к названиям в выдаче.
Андрей Панёвин
Здравствуйте! Я — Андрей Панёвин и занимаюсь профессиональной разработкой сайтов на платформе 1С-Битрикс (исключительно программирование). Есть вопросы по статье? Могу подсказать и помочь по скайпу (andrey.panevin.ru), WhatsApp (+7-911-091-0670) или перепиской в ВК.
1000 р./час.



перейти в Блог

Ударим лайками по бездорожью, разгильдяйству и бюрократизму!


Ключевые слова (тэги): 1С-Битрикс 48  PHP 60  web-программирование 84  

Вам есть что сказать — ну я же чую.
Высказаться о наболевшем, я выслушаю:
Имя


email (не публикуется)