ReIndexAll
Описание и параметры
mixed
CSearch::ReIndexAll( bool bFull = false, int max_execution_time = 0, array NS = Array(), bool clear_suggest = false );
Метод пошаговой переиндексации. Для того, чтобы модуль был переиндексирован, он должен предоставить соответствующий метод, который должен быть зарегистрирован в системе событий как обработчик события OnReIndex модуля "search". Метод статический.
На завершение работы метода срабатывает или время или "шаг", смотря что раньше "закончится".
Примечание: метод использует внутреннюю транзакцию. Если у вас используется MySQL и InnoDB, и ранее была открыта транзакция, то ее необходимо закрыть до подключения метода.
Параметры метода
Параметр | Описание | С версии |
---|---|---|
bFull | Если равен true, то на первом шаге поисковый индекс будет полностью очищен. По умолчанию равен false, что приводит к перестройке индекса только тех элементов, содержимое которых изменилось. | |
max_execution_time | Если задан и больше нуля, то как только время выполнения метода превысит значение этого параметра выполнение метода завершится. Данные для начала следующего шага будут возвращены как результат работы метода. | 3.0.6 |
NS | Хранит состояние процесса индексации (прогресс) на начало шага. | 3.0.6 |
clear_suggest | Удаляет историю/статистику подсказок для строки поиска. Необязательный параметр, по умолчанию принимает значение false. | 8.6.3 |
Возвращаемое значение
Метод возвращает массив, если требуется вызвать метод еще раз. Или число проиндексированных элементов, если переиндексация завершена.
Смотрите также
Примеры использования
<?
//Этот пример не является примером пошаговой индексации.
//Для этого надо вызывать метод ReIndexAll только один раз за запуск скрипта.
//А промежуточное состояние (NS) можно сохранять например в файле.
$NS = false;
$NS = CSearch::ReIndexAll(false, 60, $NS);
while(is_array($NS))
$NS = CSearch::ReIndexAll(false, 60, $NS);
echo $NS;
?>
Сообщение не промодерировано, возможны ошибки и неточности.
|
||
Если планируете использовать этот метод в консоли - то учтите, что им не будут все инфоблоки проиндексированы.
Вот почему: см. \CIBlock::OnSearchReindex(); для индексации всех инфоблоков можно использовать что-то такое:
| ||
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.