Utiliser l’API Microsoft Recherche pour réduire les résultats de la recherche
Vous pouvez utiliser l’API Microsoft Recherche dans Microsoft Graph pour réduire les éléments d’un jeu de résultats de recherche. Cela vous permet d’afficher les résultats de manière concise et lisible. Vous pouvez spécifier les critères de réduction à l’aide de la propriété collapseProperties dans un objet searchRequest , qui contient un ou plusieurs paramètres collapseProperty pour définir les champs à réduire et limiter la taille des résultats. La propriété collapseProperties est prise en charge pour les types d’entités suivants :
- site
- drive
- driveItem
- list
- listItem
- externalItem
Le tableau suivant répertorie les scénarios de réduction que vous pouvez activer.
Scénarios | Description | Exemple |
---|---|---|
Réduction de base | Réduire par n’importe quelle seule propriété interrogeable et triable ou refinable. Cette valeur limite doit être un entier compris entre 1 et 32767. | "collapseProperties":[{"fields":["filename"],"limit":3}] |
Réduction composée | Réduire par des champs composés de propriétés. Il n’y a pas de nombre maximal de champs, mais au moins deux champs doivent être spécifiés. Cette valeur limite doit être un entier compris entre 1 et 32767. | "collapseProperties":[{"fields":["filename","author"],"limit":2}] |
Réduction à plusieurs niveaux | Réduire par collapseProperty niveau par niveau. Il n’y a pas de nombre maximal de niveaux, mais au moins deux niveaux doivent être spécifiés. La valeur limite de chaque niveau doit être un entier compris entre 1 et 32767, et doit être égale ou inférieure à la valeur limite de niveau supérieur. | "collapseProperties":[{"fields":["filename"],"limit":3},{"fields":["author"],"limit":1}] |
Exemples
Le tableau suivant présente un exemple de liste dans SharePoint. Les exemples de cette section utilisent cette liste pour montrer le fonctionnement de la propriété collapseProperties .
Filename | Auteur | Sujet | Rank |
---|---|---|---|
Remarque | Andy | Poésie | 1 |
Remarque | James | Historique | 2 |
Remarque | Robert | Culture | 3 |
Remarque | James | Mathématiques | 4 |
Remarque | James | Sciences | 5 |
Bloc-notes | James | Sciences | 6 |
Bloc-notes | Andy | Culture | 7 |
Bloc-notes | James | Sciences | 8 |
Exemple 1 : Réduction de base
Demande
POST https://graph.microsoft.com/beta/search/query
Content-Type: application/json
{
"requests": [
{
"entityTypes": [
"listItem"
],
"query": {
"queryString": "note"
},
"fields": [
"filename"
],
"collapseProperties": [
{
"fields": [
"filename"
],
"limit": 3
}
]
}
]
}
Regroupez les éléments en fonction du nom de fichier et affichez les trois premiers (« limite » : 3) pour chaque groupe. Comme vous pouvez le voir dans le tableau suivant, le classement est maintenu. Les trois premières et les trois dernières lignes restent, mais les lignes quatre et cinq sont exclues, car la limite collapseProperties est de 3.
Filename | Auteur | Sujet | Rank |
---|---|---|---|
Remarque | Andy | Poésie | 1 |
Remarque | James | Historique | 2 |
Remarque | Robert | Culture | 3 |
Bloc-notes | James | Sciences | 6 |
Bloc-notes | Andy | Culture | 7 |
Bloc-notes | James | Sciences | 8 |
Exemple 2 : Réduction composée
Demande
POST https://graph.microsoft.com/beta/search/query
Content-Type: application/json
{
"requests": [
{
"entityTypes": [
"listItem"
],
"query": {
"queryString": "note"
},
"fields": [
"filename",
"author"
],
"collapseProperties": [
{
"fields": [
"filename",
"author"
],
"limit": 2
}
]
}
]
}
Dans le tableau suivant, le classement est maintenu, mais les résultats sont réduits simultanément par deux propriétés pour rechercher des combinaisons uniques de Filename et Author. Cela entraîne la conservation des quatre premières lignes et l’exclusion de la ligne cinq, car la combinaison de Note (Nom_fichier) et James (Auteur) n’est autorisée que jusqu’à 2 fois. Les trois dernières lignes restent pour la même raison.
Filename | Auteur | Sujet | Rank |
---|---|---|---|
Remarque | Andy | Poésie | 1 |
Remarque | James | Historique | 2 |
Remarque | Robert | Culture | 3 |
Remarque | James | Mathématiques | 4 |
Bloc-notes | James | Sciences | 6 |
Bloc-notes | Andy | Culture | 7 |
Bloc-notes | James | Sciences | 8 |
Exemple 3 : Réduction à plusieurs niveaux
Demande
POST https://graph.microsoft.com/beta/search/query
Content-Type: application/json
{
"requests": [
{
"entityTypes": [
"listItem"
],
"query": {
"queryString": "note"
},
"fields": [
"filename",
"author"
],
"collapseProperties": [
{
"fields": [
"filename"
],
"limit": 3
},
{
"fields": [
"author"
],
"limit": 1
}
]
}
]
}
Dans le tableau suivant, le classement est maintenu, mais les résultats sont réduits d’abord sur Filename, puis sur Author. Pour la réduction de premier niveau sur Filename, avec une limite de 3, les trois premières lignes restent, les lignes quatre et cinq sont supprimées et les trois dernières lignes restent telles quelles. Pour la réduction de second niveau avec une limite de 1, les trois premières lignes ne changent pas, car chacune a une valeur d’auteur unique. La ligne huit est exclue, car James est de nouveau répertorié comme Auteur et cette propriété doit avoir des valeurs uniques.
Filename | Auteur | Sujet | Rank |
---|---|---|---|
Remarque | Andy | Poésie | 1 |
Remarque | James | Historique | 2 |
Remarque | Robert | Culture | 3 |
Bloc-notes | James | Sciences | 6 |
Bloc-notes | Andy | Culture | 7 |
Réponse
Lorsque vous utilisez collapseProperties, la réponse contient une propriété booléenne isCollapsed pour chaque résultat. Cette propriété indique l’état de réduction du résultat.
HTTP/1.1 200 OK
Content-type: application/json
{
"value": [
{
"searchTerms": [
"note"
],
"hitsContainers": [
{
"hits": [
{
"hitId": "94149344-55e4-4678-b22a-b37a9ed1ffff",
"rank": 1,
"isCollapsed": true,
"summary": "",
"resource": {
"@odata.type": "#microsoft.graph.listItem",
"sharepointIds": {
"listId": "9b786f01-4668-4862-8bbf-443159c0ffff",
"listItemId": "3"
},
"id": "94149344-55e4-4678-b22a-b37a9ed1ffff",
"createdDateTime": "2012-10-10T12:07:57Z",
"lastModifiedDateTime": "2022-11-30T08:38:47Z",
"parentReference": {
"id": "01PPFMTLYPOGQADPQCOJAJTXZLKETTQP6F",
"siteId": "microsoftapc-my.sharepoint.com,5b8af7a0-0c23-4719-ab6c-457c2104ea8a,2e4df0d0-c83a-473b-bed1-2d2046966d31"
},
"webUrl": "https://microsoftapc-my.sharepoint.com/Documents/Notes"
}
}
],
"total": 4281349,
"moreResultsAvailable": true
}
]
}
],
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(microsoft.graph.searchResponse)"
}
Limitations connues
La propriété collapseProperties n’est pas prise en charge pour les ressources suivantes : message, chatMessage, event, person, externalItem, bookmark, acronyme ou qna.