• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/search/indexer.php
  • Класс: Bitrix\Sender\Search\Indexer
  • Вызов: Indexer::indexLetters
static function indexLetters($lastId = null)
{
	$timer = new Runtime\Timer(Runtime\Env::getJobExecutionTimeout(), 100);

	$filter = [];
	if ($lastId)
	{
		$filter['>ID'] = $lastId;
	}
	$list = Model\LetterTable::getList([
		'filter' => $filter,
		'order' => ['ID' => 'ASC']
	]);

	$nextId = null;
	foreach ($list as $item)
	{
		$letter = Entity\Letter::createInstanceByArray($item);
		$letter->saveSearchIndex();

		if ($timer->isElapsed())
		{
			$nextId = $item['ID'];
			break;
		}
	}

	if (!$nextId)
	{
		$hasIndex = Application::getConnection()->getIndexName(
			Model\LetterTable::getTableName(),
			["SEARCH_CONTENT"],
			true
		) !== null;

		$entity = Model\LetterTable::getEntity();
		$entity->enableFullTextIndex("SEARCH_CONTENT", $hasIndex);
	}

	return $nextId;
}