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.

Pasos siguientes