Стандартного API у решения нет, но реализовать функцию получения результатов умного поиска можно с помощью имеющегося у решения функционала.
Компонент arturgolubev:search.page возвращает ID найденных результатов, взяв это за основу мы можем написать функцию получения результатов.
Код функции:
class SmartSearchResult {
static function getResult($query){
global $APPLICATION;
$_REQUEST['q'] = $query;
$result = $APPLICATION->IncludeComponent(
"arturgolubev:search.page",
"empty",
array(
"CACHE_TIME" => "3600",
"CACHE_TYPE" => "A",
"CHECK_DATES" => "N",
"DEFAULT_SORT" => "rank",
"DISPLAY_BOTTOM_PAGER" => "N",
"DISPLAY_TOP_PAGER" => "N",
"FILTER_NAME" => "",
"PAGER_SHOW_ALWAYS" => "N",
"PAGER_TEMPLATE" => ".default",
"PAGE_RESULT_COUNT" => "5000",
"USE_LANGUAGE_GUESS" => "N",
"COMPONENT_TEMPLATE" => "empty",
"arrFILTER" => array(
0 => "iblock_catalog", // область поиска
),
"arrFILTER_iblock_catalog" => array(
0 => "2", // область поиска
),
),
false
);
return $result;
}
}
Вызов функции:
$result = SmartSearchResult::getResult('Тапочки'); // Поиск по слову Тапочки
в $result будет массив найденных по запросу элементов.
Функция возвращает ID найденных элементов в порядке релевантности, соответственно база у нас есть - порядок релевантности и ID элементов для получения других данных (названий, цен и т.п.).
Эта информация оказалась полезной?
Да
Нет