- Модуль: search
- Путь к файлу: ~/bitrix/modules/search/classes/general/title.php
- Класс: CAllSearchTitle
- Вызов: CAllSearchTitle::Search
function Search($phrase = "", $nTopCount = 5, $arParams = array(), $bNotFilter = false, $order = "")
{
$DB = CDatabase::GetModuleConnection('search');
$this->_arPhrase = stemming_split($phrase, LANGUAGE_ID);
if (!empty($this->_arPhrase))
{
$nTopCount = intval($nTopCount);
if ($nTopCount <= 0)
$nTopCount = 5;
$arId = CSearchFullText::getInstance()->searchTitle($phrase, $this->_arPhrase, $nTopCount, $arParams, $bNotFilter, $order);
if (!is_array($arId))
{
return $this->searchTitle($phrase, $nTopCount, $arParams, $bNotFilter, $order);
}
elseif (!empty($arId))
{
$strSql = "
SELECT
sc.ID
,sc.MODULE_ID
,sc.ITEM_ID
,sc.TITLE
,sc.PARAM1
,sc.PARAM2
,sc.DATE_CHANGE
,sc.URL as URL
,scsite.URL as SITE_URL
,scsite.SITE_ID
,".$this->getRankFunction($phrase)." RANK1
FROM
b_search_content sc
INNER JOIN b_search_content_site scsite ON sc.ID = scsite.SEARCH_CONTENT_ID
WHERE
sc.ID in (".implode(",", $arId).")
and scsite.SITE_ID = '".SITE_ID."'
ORDER BY ".$this->getSqlOrder($order == "rank")."
";
$r = $DB->Query($DB->TopSql($strSql, $nTopCount + 1));
parent::__construct($r);
return true;
}
}
else
{
return false;
}
}