Готовые решения для 1С-Битрикс
Карточка решения
База знаний по решению:
Умный поиск с исправлением ошибок в запросе и подсказками
Другие часто задаваемые вопросы:
Часто задаваемые вопросы:

API поиска

Стандартного 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 элементов для получения других данных (названий, цен и т.п.).
Эта информация оказалась полезной? Да Нет