• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/search/indexmanager.php
  • Класс: BitrixDiskSearchIndexManager
  • Вызов: IndexManager::onSearchReindex
static function onSearchReindex($nextStepData = array(), $searchObject = null, $method = "")
{
	$result = array();
	$filter = array(
		'!PARENT_ID' => null,
	);

	if(isset($nextStepData['MODULE']) && ($nextStepData['MODULE'] === 'disk') && !empty($nextStepData['ID']))
	{
		$filter['>ID'] = self::getObjectIdFromItemId($nextStepData['ID']);
	}
	else
	{
		$filter['>ID'] = 0;
	}

	static $self = null;
	if($self === null)
	{
		$self = Driver::getInstance()->getIndexManager();
	}

	$query = BaseObject::getList([
		'filter' => $filter,
		'order' => ['ID' => 'ASC'],
		'limit' => 1000,
	]);
	while($fileData = $query->fetch())
	{
		/** @var BaseObject $object */
		$object = BaseObject::buildFromArray($fileData);
		if(!$object->getStorage())
		{
			continue;
		}

		$searchData = array(
			'ID' => self::getItemId($object),
			'LAST_MODIFIED' => $object->getUpdateTime() ?: $object->getCreateTime(),
			'TITLE' => $object->getName(),
			'PARAM1' => $object->getStorageId(),
			'PARAM2' => $object->getParentId(),
			'SITE_ID' => self::resolveSiteId($object->getStorage()),
			'URL' => self::getDetailUrl($object),
			'PERMISSIONS' => $self->getSimpleRights($object),
			//CSearch::killTags
			'BODY' => $self->getObjectContent($object),
		);

		if($searchObject)
		{
			$indexResult = call_user_func(array($searchObject, $method), $searchData);
			if(!$indexResult)
			{
				return $searchData["ID"];
			}
		}
		else
		{
			$result[] = $searchData;
		}
	}

	if($searchObject)
	{
		return false;
	}

	return $result;
}