- Модуль: 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;
}