Что делаем
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 добавляем выполнение этого скрипта раз в день/неделю (кому, что необходимо).