Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Développeur
Utilisez Recherche Microsoft dans Microsoft Graph lorsque votre application a besoin de mot clé recherche dans des conteneurs ou du contenu SharePoint Embedded. L’API de recherche classe les résultats correspondants et retourne drive des ressources pour les conteneurs ou driveItem des ressources pour les fichiers et dossiers.
Remarque
La recherche SharePoint Embedded est en préversion et est disponible uniquement sur le point de terminaison Microsoft Graph /beta . Il n’existe aucune v1.0 API de recherche pour les conteneurs. La recherche prend uniquement en charge les autorisations déléguées et suit le modèle d’accès exceptionnel.
Choisir l’étendue de recherche
Limitez chaque requête au type de conteneur ou au conteneur qui appartient à votre application. La recherche s’exécute dans le contexte de l’utilisateur connecté, de sorte que le service réduit les résultats en contenu auquel l’utilisateur peut accéder. Votre application doit également avoir accès au type de conteneur correspondant avant de pouvoir ouvrir des conteneurs ou des fichiers retournés.
Utilisez ces propriétés managées dans :queryString
| Portée | Type d’entité | Modèle de requête |
|---|---|---|
| Tous les conteneurs d’un type | drive |
ContainerTypeId:{containerTypeId} |
| Un conteneur par titre | drive |
Title:'contoso' AND ContainerTypeId:{containerTypeId} |
| Un conteneur par description | drive |
Description:'Everything' AND ContainerTypeId:{containerTypeId} |
| Files dans un seul conteneur | driveItem |
Title:'contoso' AND ContainerId:{containerId} |
| Files sur un type de conteneur | driveItem |
'contoso' AND ContainerTypeId:{containerTypeId} |
Si votre application a refusé la détectabilité du contenu Microsoft 365, définissez sharePointOneDriveOptions.includeHiddenContenttrue sur dans le corps de la demande.
Rechercher des conteneurs
Envoyer une POST requête à la recherche et aux ressources de requête 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
}
]
}
La réponse inclut hitsContainers. Chaque accès contient un hitId, rank, summaryet un resource dont @odata.type est #microsoft.graph.drive.
Rechercher des fichiers et des dossiers
Demandez des driveItem ressources lorsque l’utilisateur recherche des noms de fichiers ou du contenu de fichier. Étendue à un conteneur spécifique avec ContainerId quand l’utilisateur est déjà à l’intérieur d’un espace de travail.
{
"requests": [
{
"entityTypes": ["driveItem"],
"query": {
"queryString": "Title:'contoso' AND ContainerId:b!UBoDBcfpTEeInnz0Rlmlsp6EC-DsPN5Kj3uW0fD1mPp9ptYmB71GRpxbhbDlGdb0"
},
"sharePointOneDriveOptions": {
"includeHiddenContent": true
},
"from": 0,
"size": 25
}
]
}
Un driveItem résultat peut inclure des métadonnées de fichier telles que id, name, createdDateTimesize, lastModifiedDateTime, parentReference, createdBy, , lastModifiedBy, et webUrl.
Retourner les champs sélectionnés et trier les résultats
Utilisez la fields collection pour demander des propriétés managées spécifiques dans la réponse. Utilisez sortProperties uniquement avec les propriétés triables.
{
"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 }
]
}
]
}
Utilisez from et size pour parcourir les résultats classés. Lisez hitsContainers[].total et hitsContainers[].moreResultsAvailable pour décider s’il faut demander une autre page.
Rechercher des propriétés personnalisées
Pour les propriétés personnalisées du conteneur, ajoutez OWSTEXT au nom de la propriété personnalisée dans la chaîne de requête.
customPropertyNametOWSTEXT:customPropertyValue AND ContainerTypeId:498c6855-8f0e-0de7-142e-4e9ff86af9ae
Utilisez la recherche en texte intégral (point de /beta/search/query terminaison ci-dessus) lorsque les utilisateurs tapent des termes en texte libre et que vous souhaitez un classement de pertinence entre les conteneurs. Utilisez l’énumération directe au lieu de la recherche lorsque votre application doit filtrer sur les valeurs de métadonnées connues sans classement de pertinence. Par exemple, interroger des éléments de lecteur avec $filter, $expandet $orderby:
GET https://graph.microsoft.com/v1.0/drives/{container-id}/items?$filter=startswith(listitem/fields/{column}, '{value}')&$expand=listitem($expand=fields)
Lorsqu’un conteneur contient plus de 5 000 éléments et que vous énumérez avec $orderby, incluez l’en-tête Prefer: HonorNonIndexedQueriesWarningMayFailRandomly requis pour les énumérations ordonnées volumineuses.
Limitations connues
La recherche applique l’accès de l’utilisateur connecté, et non l’autorisation de votre application. Les résultats incluent tous les conteneurs et les éléments auxquels l’utilisateur peut accéder qui correspondent à la requête, même les conteneurs dont le type de conteneur votre application n’est pas autorisé à utiliser. Incluez ContainerTypeId toujours dans l’étendue queryString des résultats de votre application.
Pour ouvrir un conteneur ou un fichier retourné par la recherche, votre application doit disposer d’autorisations d’accès au type de conteneur correspondant.