Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: Разработчик
Используйте поиск (Майкрософт) в Microsoft Graph, когда приложению требуется ключевое слово поиска в контейнерах или содержимом SharePoint Embedded. API поиска ранжирует соответствующие результаты и возвращает drive ресурсы для контейнеров или driveItem ресурсы для файлов и папок.
Примечание.
Поиск SharePoint Embedded доступен в предварительной версии. Используйте конечную точку Microsoft Graph /beta , так как для контейнеров нет v1.0 API поиска. Поиск поддерживает только делегированные разрешения и соответствует шаблону исключительного доступа.
Выберите область поиска
Укажите для каждого запроса тип контейнера или контейнер, принадлежащий вашему приложению. Поиск выполняется в контексте вошедшего пользователя, поэтому служба обрезает результаты по содержимому, к которой пользователь может получить доступ. Ваше приложение также должно иметь доступ к соответствующему типу контейнера, прежде чем оно сможет открывать возвращенные контейнеры или файлы.
Используйте эти управляемые свойства в queryString:
| Scope | Тип сущности | Шаблон запроса |
|---|---|---|
| Все контейнеры типа | drive |
ContainerTypeId:{containerTypeId} |
| Один контейнер по названию | drive |
Title:'contoso' AND ContainerTypeId:{containerTypeId} |
| Один контейнер по описанию | drive |
Description:'Everything' AND ContainerTypeId:{containerTypeId} |
| Files в одном контейнере | driveItem |
Title:'contoso' AND ContainerId:{containerId} |
| Files в типе контейнера | driveItem |
'contoso' AND ContainerTypeId:{containerTypeId} |
Если ваше приложение отказались от возможности обнаружения содержимого Microsoft 365, задайте для параметра значение sharePointOneDriveOptions.includeHiddenContenttrue в тексте запроса.
Поиск контейнеров
POST Отправьте запрос в ресурсы поиска и запроса drive Microsoft Graph.
POST https://graph.microsoft.com/beta/search/query
Content-Type: application/json
{
"requests": [
{
"entityTypes": ["drive"],
"query": {
"queryString": "ContainerTypeId:498c6855-8f0e-0de7-142e-4e9ff86af9ae"
},
"sharePointOneDriveOptions": {
"includeHiddenContent": true
},
"from": 0,
"size": 25
}
]
}
Ответ включает в себя hitsContainers. Каждое нажатие содержит hitId, rank, summaryи , resource для которых @odata.type имеет значение #microsoft.graph.drive.
Поиск файлов и папок
Запрашивайте driveItem ресурсы, когда пользователь выполняет поиск имен файлов или содержимого файлов. Область действия для определенного контейнера с ContainerId параметром , когда пользователь уже находится внутри контейнера.
{
"requests": [
{
"entityTypes": ["driveItem"],
"query": {
"queryString": "Title:'contoso' AND ContainerId:b!UBoDBcfpTEeInnz0Rlmlsp6EC-DsPN5Kj3uW0fD1mPp9ptYmB71GRpxbhbDlGdb0"
},
"sharePointOneDriveOptions": {
"includeHiddenContent": true
},
"from": 0,
"size": 25
}
]
}
Результат driveItem может включать метаданные файла, такие как id, name, size, createdDateTime, lastModifiedDateTime, parentReference, createdBy, lastModifiedByи webUrl.
Возврат выбранных полей и результаты сортировки
Используйте коллекцию fields для запроса определенных управляемых свойств в ответе. Используйте sortProperties только с сортируемыми свойствами.
{
"requests": [
{
"entityTypes": ["driveItem"],
"query": { "queryString": "Everything about contoso" },
"sharePointOneDriveOptions": { "includeHiddenContent": true },
"fields": ["SampleOWSText", "id", "name", "parentReference", "webUrl", "createdDateTime", "lastModifiedDateTime", "size"],
"sortProperties": [
{ "name": "Created", "isDescending": false }
]
}
]
}
Используйте from и size для просмотра ранжированных результатов. Чтение hitsContainers[].total и hitsContainers[].moreResultsAvailable решение о том, следует ли запрашивать другую страницу.
Поиск настраиваемых свойств
Для пользовательских свойств контейнера добавьте OWSTEXT к имени пользовательского свойства в строке запроса.
customPropertyNameOWSTEXT:customPropertyValue AND ContainerTypeId:498c6855-8f0e-0de7-142e-4e9ff86af9ae
Используйте полнотекстовый поиск ( /beta/search/query конечная точка выше), когда пользователи вводит термины свободного текста и требуется ранжирование релевантности между контейнерами. Используйте прямое перечисление вместо поиска, если приложение должно фильтровать значения известных метаданных без ранжирования релевантности. Например, запросите элементы диска с $filterпомощью , $expandи $orderby:
GET https://graph.microsoft.com/v1.0/drives/{container-id}/items?$filter=startswith(listitem/fields/{column}, '{value}')&$expand=listitem($expand=fields)
Если контейнер содержит более 5000 элементов и выполняется перечисление с $orderbyпомощью , включите заголовок, необходимый Prefer: HonorNonIndexedQueriesWarningMayFailRandomly для больших упорядоченных перечислений.
Известные ограничения
Поиск обеспечивает доступ пользователя, выполнившего вход, а не авторизацию вашего приложения. Результаты включают все контейнеры и элементы, к которым пользователь может получить доступ, соответствующие запросу, даже контейнеры, тип контейнера которых приложение не авторизовано на использование. Всегда включайте ContainerTypeId в область queryString результаты в приложение.
Чтобы открыть контейнер или файл, возвращенный поиском, приложение должно иметь разрешения на доступ к соответствующему типу контейнера.