Что делаем
CMS Битрикс обладает рядом преимуществ перед аналогами: здесь можно сделать все.
В том числе и переиндексировать внутренний поиск на сайте.
Настройка переиндексации
Сделаем это не используя файл init.php куда добавляется все и когда надо и когда не надо.
1) Создадим папку на сервере для нашего скрипта в корне сайта. Пусть это будет myscripts2) В ней создадим свой скрипт:
<?
$_SERVER["DOCUMENT_ROOT"] = '/home/d/myuser/mysite.ru/public_html'; // << Полный путь к корню сайта.
$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];
define("BX_CRONTAB", true);
define("NO_KEEP_STATISTIC", true);
define('BX_NO_ACCELERATOR_RESET', true);
define("NOT_CHECK_PERMISSIONS",true);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if(CModule::IncludeModule("search")) {
// Убрать комментарии ниже, если хотите отключить ограничение времени выполнения скрипта.
// @set_time_limit(0);
// @ignore_user_abort(true);
CModule::IncludeModule("search");
$res = CSearch::ReIndexAll(true);
echo 'Проиндексировано элементов: ', $res;
}
?>
3) Идем в панель управления хостингом и в Cron добавляем выполнение этого скрипта раз в день/неделю (кому, что необходимо).