Не раз сталкивался с такой проблемой. При работе и интернет магазином можно столкнуться с ситуацией, когда при поиске по каталогу сайт выдает не все товары по введенному запросу. Это случается при вводе запроса с большим количеством результатов выдачи. Например, если в интернет-магазине электроники с большим ассортиментом ввести слово "Ноутбук". При этом для поиска используется компонент bitrix:catalog.search.
А решается эта проблема очень просто. Дело в том, что в дефолтных настройках модуля bitrix:catalog.search установлено значение параметра PAGE_RESULT_COUNT равным 50. Соответственно нам просто нужно изменить это значение. Для этого открываем для редактирования шаблон компонента bitrix:catalog.searchлюбым удобным способом (через бэкенд или фронтенд). Не забываем скопировать его к себе есль используется дефолтный. В коде находим следующие строки:
$arElements = $APPLICATION->IncludeComponent(
"bitrix:search.page",
".default",
Array(
"RESTART" => $arParams["RESTART"],
"NO_WORD_LOGIC" => $arParams["NO_WORD_LOGIC"],
"USE_LANGUAGE_GUESS" => "N",
"CHECK_DATES" => $arParams["CHECK_DATES"],
"arrFILTER" => array("iblock_".$arParams["IBLOCK_TYPE"]),
"arrFILTER_iblock_".$arParams["IBLOCK_TYPE"] => array($arParams["IBLOCK_ID"]),
"USE_TITLE_RANK" => "N",
"DEFAULT_SORT" => "rank",
"FILTER_NAME" => "",
"SHOW_WHERE" => "N",
"arrWHERE" => array(),
"SHOW_WHEN" => "N",
"PAGE_RESULT_COUNT" => 50,
"DISPLAY_TOP_PAGER" => "N",
"DISPLAY_BOTTOM_PAGER" => "N",
"PAGER_TITLE" => "",
"PAGER_SHOW_ALWAYS" => "N",
"PAGER_TEMPLATE" => "N",
),
$component
);
Найти строку с нужным параметром и заменить 50 на любое другое число выше 50, которое гарантирует вывод всех товаров, например, 9999.
Вот и вся хитрость.
Ограничение результатов поиска введено разработчиками Битрикс для увеличения скорости поиска. Насколько это оправдано не знаю, но главное что мы всегда можем это ограничение снять.
19.05.2017