Uso de la API de Microsoft Búsqueda para contraer los resultados de búsqueda
Puede usar microsoft Búsqueda API en Microsoft Graph para contraer elementos en un conjunto de resultados de búsqueda. Esto le permite mostrar los resultados de una manera concisa y legible. Puede especificar los criterios para contraer mediante la propiedad collapseProperties en un objeto searchRequest , que contiene uno o varios parámetros collapseProperty para establecer los campos que se contraerán y limitar el tamaño de los resultados. La propiedad collapseProperties se admite para los siguientes tipos de entidad:
- site
- drive
- driveItem
- list
- listItem
- externalItem
En la tabla siguiente se enumeran los escenarios de contracción que puede habilitar.
Escenarios | Descripción | Ejemplo |
---|---|---|
Contraído básico | Contraer por cualquier propiedad única consultable y ordenable o refinable. Este valor límite debe ser un entero entre 1 y 32767. | "collapseProperties":[{"fields":["filename"],"limit":3}] |
Contraer compuesto | Contraer por campos compuestos de propiedades. No hay ningún número máximo de campos, pero se deben especificar al menos dos campos. Este valor límite debe ser un entero entre 1 y 32767. | "collapseProperties":[{"fields":["filename","author"],"limit":2}] |
Contraer varios niveles | Contraer por collapseProperty nivel a nivel. No hay ningún número máximo de niveles, pero se deben especificar al menos dos niveles. El valor límite de cada nivel debe ser un entero entre 1 y 32767 y debe ser igual o menor que el valor límite de nivel superior. | "collapseProperties":[{"fields":["filename"],"limit":3},{"fields":["author"],"limit":1}] |
Ejemplos
En la tabla siguiente se muestra una lista de ejemplo en SharePoint. En los ejemplos de esta sección se usa esta lista para mostrar cómo funciona la propiedad collapseProperties .
Filename | Autor | Asunto | Jerarquia |
---|---|---|---|
Nota: | Andy | Poesía | 1 |
Nota: | James | Historial | 2 |
Nota: | Robert | Culture | 3 |
Nota: | James | Matemáticas | 4 |
Nota: | James | Ciencia | 5 |
Bloc de notas | James | Ciencia | 6 |
Bloc de notas | Andy | Culture | 7 |
Bloc de notas | James | Ciencia | 8 |
Ejemplo 1: Contraído básico
Solicitud
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
}
]
}
]
}
Agrupe los elementos en función del nombre de archivo y muestre los tres primeros ("límite": 3) para cada grupo. Como puede ver en la tabla siguiente, se mantiene la clasificación. Las tres primeras y últimas tres filas permanecen, pero las filas cuatro y cinco se excluyen porque el límite collapseProperties es 3.
Filename | Autor | Asunto | Jerarquia |
---|---|---|---|
Nota: | Andy | Poesía | 1 |
Nota: | James | Historial | 2 |
Nota: | Robert | Culture | 3 |
Bloc de notas | James | Ciencia | 6 |
Bloc de notas | Andy | Culture | 7 |
Bloc de notas | James | Ciencia | 8 |
Ejemplo 2: Contracción compuesta
Solicitud
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
}
]
}
]
}
En la tabla siguiente, se mantiene la clasificación, pero los resultados se contraen mediante dos propiedades simultáneamente para encontrar combinaciones únicas de Filename y Author. Esto da como resultado mantener las cuatro primeras filas y excluir la fila cinco, ya que la combinación de Nota (Nombre de archivo) y James (Autor) solo se permite hasta 2 veces. Las tres últimas filas permanecen por el mismo motivo.
Filename | Autor | Asunto | Jerarquia |
---|---|---|---|
Nota: | Andy | Poesía | 1 |
Nota: | James | Historial | 2 |
Nota: | Robert | Culture | 3 |
Nota: | James | Matemáticas | 4 |
Bloc de notas | James | Ciencia | 6 |
Bloc de notas | Andy | Culture | 7 |
Bloc de notas | James | Ciencia | 8 |
Ejemplo 3: Contracción de varios niveles
Solicitud
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
}
]
}
]
}
En la tabla siguiente, se mantiene la clasificación, pero los resultados se contraen primero en Nombre de archivo y, a continuación, en Autor. Para el primer contraído de nivel en Filename, con un límite de 3, las tres primeras filas permanecen, las filas cuatro y cinco se quitan y las tres últimas filas permanecen tal cual. Para el contraído de segundo nivel con un límite de 1, las tres primeras filas no cambian porque cada una tiene un valor author único. La fila ocho se excluye porque James aparece de nuevo como Autor y esa propiedad debe tener valores únicos.
Filename | Autor | Asunto | Jerarquia |
---|---|---|---|
Nota: | Andy | Poesía | 1 |
Nota: | James | Historial | 2 |
Nota: | Robert | Culture | 3 |
Bloc de notas | James | Ciencia | 6 |
Bloc de notas | Andy | Culture | 7 |
Respuesta
Cuando se usan collapseProperties, la respuesta contiene una propiedad booleana isCollapsed para cada resultado. Esta propiedad indica el estado de contracción del resultado.
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)"
}
Limitaciones conocidas
La propiedad collapseProperties no se admite para los siguientes recursos: message,chatMessage, event, person, externalItem, bookmark, acrónimo o qna.