Документация для разработчиков
Темная тема

ReindexModule

Описание и параметры

void
CSearch::ReindexModule( string MODULE_ID, bool bFull = false );

Метод инициирует переиндексацию указанного модуля. Для того, чтобы модуль был переиндексирован, он должен предоставить соответствующий метод, который должен быть зарегистрирован в системе событий как обработчик события OnReIndex модуля "search". Метод статический.

С помощью этого метода невозможно переиндексировать данные модуля "main". Т.к. индексация файлов выполняется не через обработчики событий, а непосредственно модулем поиска. Но можно воспользоваться методом CSearch::ReIndexAll, передав на первом шаге $NS = array("MODULE_ID"=>"main").

Примечание: метод использует внутреннюю транзакцию. Если у вас используется MySQL и InnoDB, и ранее была открыта транзакция, то ее необходимо закрыть до подключения метода.

Параметры метода

Параметр Описание
MODULE_ID Код модуля, переиндексация которого требуется.
bFull Производить ли полную переиндексацию с очисткой старых поисковых индексов. Не обязательный параметр, по умолчанию равен false.

Смотрите также

Примеры использования

OnReindex.

// регистрируем обработчик события "OnReindex" модуля "search"
RegisterModuleDependences("search", "OnReindex", "my_module", "CMyModule", "OnReindex");

// создаем в модуле my_module в классе CMyModule метод OnReindex
function OnReindex()
{
global $DB;
$arResult = array();

$strSql =
"SELECT FT.ID, FT.TITLE, FT.MESSAGE, ".
" DATE_FORMAT(FT.POST_DATE, '%d.%m.%Y %H:%i:%s') as POST_DATE, FT.LID ".
"FROM b_my_table FT ";

$db_res = $DB->Query($strSql);
while ($res = $db_res->Fetch())
{
$arResult[] = array(
"ID" => $res["ID"],
"LID" => $res["LID"],
"DATE_CHANGE" => $res["POST_DATE"],
"URL" => "/my_module/index.php?ID=".$res["ID"],
"PERMISSIONS" => array(2),
"TITLE" => $res["TITLE"],
"BODY" => $res["POST_MESSAGE"]
);
}
return $arResult;
}

// вызываем переиндексацию модуля
CSearch::ReIndexModule("my_module");

?>


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2021, «1С-Битрикс», 2021
Наверх