Задать вопрос
haanastasia
@haanastasia
джуниор программист

Как сделать поиск по строгому сравнению в битриксе?

Здравствуйте!
Как реализовать поиск в битриксе без учета морфологии, по строгому сравнению, без поиска части слова.
То есть, если вводишь в поиск "12" находился товар только "12", а не "1213" или "2112".
  • Вопрос задан
  • 482 просмотра
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 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;
	    }
	}

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

Войдите, чтобы написать ответ

Похожие вопросы