Улучшаем поиск

Есть проблемы когда поиск не ищет подстроку в строке

Для этого нужно скопировать стандартный компонент search.page (например my.search.page) и в файл component.php добавить следующий код

<?
} //примерно строка 230

$arResult["REQUEST"]["~QUERY"] = preg_replace('/(\S+)/', '"\\1"', $arResult["REQUEST"]["~QUERY"]);
$arResult["REQUEST"]["QUERY"] = htmlspecialcharsex($arResult["REQUEST"]["~QUERY"]);

if($tags!==false)
?>

Переделываем вызов на исправленный вами инфоблок и радуемся результату

Этот же способ можно применить и для компонента search.title , но код нужно вставить немного другой в файл component.php

<?
//примерно строка 80

$obTitle = new CSearchTitle;
$obTitle->setMinWordLength($_REQUEST["l"]);
if($obTitle->Search(
//$arResult["alt_query"]? $arResult["alt_query"]: $arResult["query"] //эту строку удаляем
preg_replace('/(\S+)/', '"\\1"', $arResult["query"]) // строка подмены
,$arParams["TOP_COUNT"]
,$exFILTER
,false
,$arParams["ORDER"]
))
?>