• Модуль: 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;
	}
}