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

    @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;
        }
    }


    После чего необходимо запустить переиндексацию в настройках-поиск-переиндексация. Данное событие запускается при переиндексировании каждого элемента. Мы убрали из поискового индекса описание, поэтому поиск теперь не будет проводится по описанию в любом компоненте поиска. У разделов мы исключили заголовок, теги и описание, чтобы они вообще не участвовали в поиске.
    Ответ написан
    1 комментарий