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

Подскажите, можно ли как-то в компоненте bitrix:catalog.search сделать поиск только по заголовкам элементов инфоблока? Именно в нем, bitrix:search.title не предлагать.
  • Вопрос задан
  • 5905 просмотров
Пригласить эксперта
Ответы на вопрос 2
@sergafon
Решается задача следующим образом
в init.php всталвяем
// Исключаем поиск по описаниям
AddEventHandler("search", "BeforeIndex", array("SearchHandlers", "BeforeIndexHandler"));

class SearchHandlers
{
    function BeforeIndexHandler($arFields)
    {
        if($arFields["MODULE_ID"] == "iblock")
        {
            if(array_key_exists("BODY", $arFields) && substr($arFields["ITEM_ID"], 0, 1) != "S") // Только для элементов
            {
                $arFields["BODY"] = "";
            }

            if (substr($arFields["ITEM_ID"], 0, 1) == "S") // Только для разделов
            {
                $arFields['TITLE'] = "";
                $arFields["BODY"] = "";
                $arFields['TAGS'] = "";
            }
        }

        return $arFields;
    }
}


После чего необходимо запустить переиндексацию в настройках-поиск-переиндексация. Данное событие запускается при переиндексировании каждого элемента. Мы убрали из поискового индекса описание, поэтому поиск теперь не будет проводится по описанию в любом компоненте поиска. У разделов мы исключили заголовок, теги и описание, чтобы они вообще не участвовали в поиске.
Ответ написан
alexfilus
@alexfilus
Senior backend developer
Уберите вызов компонента поиска, а фильтр замените на
array("?NAME"=>$search_str);
Ответ написан
Ваш ответ на вопрос

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

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