Usar a API de Pesquisa da Microsoft para recolher os resultados da pesquisa

Você pode usar a API de Pesquisa da Microsoft no Microsoft Graph para recolher itens em um conjunto de resultados de pesquisa. Isso permite que você exiba os resultados de forma concisa e legível. Você pode especificar os critérios para recolhimento usando a propriedade collapseProperties em um objeto searchRequest , que contém um ou mais parâmetros collapseProperty para definir campos a serem recolhidos e limitar o tamanho dos resultados. A propriedade collapseProperties tem suporte para os seguintes tipos de entidade:

  • site
  • drive
  • driveItem
  • list
  • listItem
  • externalItem

A tabela a seguir lista os cenários de recolhimento que você pode habilitar.

Cenários Descrição Exemplo
Recolher básico Recolher por qualquer propriedade única consultável e classificável ou refinável. Esse valor limite deve ser um número inteiro entre 1 e 32767. "collapseProperties":[{"fields":["filename"],"limit":3}]
Colapso composto Recolher por campos compostos de propriedades. Não há um número máximo de campos, mas pelo menos dois campos devem ser especificados. Esse valor limite deve ser um número inteiro entre 1 e 32767. "collapseProperties":[{"fields":["filename","author"],"limit":2}]
Recolhimento de vários níveis Recolher por nível por nível collapseProperty. Não há número máximo de níveis, mas pelo menos dois níveis devem ser especificados. O valor limite de cada nível deve ser um número inteiro entre 1 e 32767 e deve ser igual ou menor que o valor limite de nível superior. "collapseProperties":[{"fields":["filename"],"limit":3},{"fields":["author"],"limit":1}]

Exemplos

A tabela a seguir mostra uma lista de exemplo no SharePoint. Os exemplos desta seção usam essa lista para mostrar como funciona a propriedade collapseProperties .

Filename Autor Assunto Rank
Observação Andy Poesia 1
Observação Jaime Histórico 2
Observação Robert Cultura 3
Observação Jaime Matemática 4
Observação Jaime Ciência 5
Notebook Jaime Ciência 6
Notebook Andy Cultura 7
Notebook Jaime Ciência 8

Exemplo 1: recolher básico

Solicitação

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 os itens com base no Nome do arquivo e mostre os três primeiros ("limite": 3) para cada grupo. Como você pode ver na tabela a seguir, a classificação é mantida. As três primeiras e as três últimas linhas permanecem, mas as linhas quatro e cinco são excluídas porque o limite collapseProperties é 3.

Filename Autor Assunto Rank
Observação Andy Poesia 1
Observação Jaime Histórico 2
Observação Robert Cultura 3
Notebook Jaime Ciência 6
Notebook Andy Cultura 7
Notebook Jaime Ciência 8

Exemplo 2: colapso composto

Solicitação

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
                }
            ]
        }
    ]
}

Na tabela a seguir, a classificação é mantida, mas os resultados são recolhidos em duas propriedades simultaneamente para encontrar combinações exclusivas de Nome do arquivo e Autor. Isso resulta na manutenção das primeiras quatro linhas e na exclusão da linha cinco, pois a combinação de Nota (Nome do arquivo) e Tiago (Autor) só é permitida até 2 vezes. As últimas três linhas permanecem pelo mesmo motivo.

Filename Autor Assunto Rank
Observação Andy Poesia 1
Observação Jaime Histórico 2
Observação Robert Cultura 3
Observação Jaime Matemática 4
Notebook Jaime Ciência 6
Notebook Andy Cultura 7
Notebook Jaime Ciência 8

Exemplo 3: Recolhimento em vários níveis

Solicitação

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
                }
            ]
        }
    ]
}

Na tabela a seguir, a classificação é mantida, mas os resultados são recolhidos primeiro em Nome do arquivo e depois em Autor. Para o recolhimento de primeiro nível no nome do arquivo, com um limite de 3, as três primeiras linhas permanecem, as linhas quatro e cinco são removidas e as últimas três linhas permanecem como estão. Para o recolhimento de segundo nível com um limite de 1, as três primeiras linhas não são alteradas porque cada uma tem um valor de autor exclusivo. A linha oito é excluída porque Tiago está listado novamente como Autor e essa propriedade deve ter valores exclusivos.

Filename Autor Assunto Rank
Observação Andy Poesia 1
Observação Jaime Histórico 2
Observação Robert Cultura 3
Notebook Jaime Ciência 6
Notebook Andy Cultura 7

Resposta

Quando você usa collapseProperties, a resposta contém uma propriedade booleana isCollapsed para cada resultado. Essa propriedade indica o estado de recolhimento do 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)"
}

Limitações conhecidas

A propriedade collapseProperties não tem suporte para os seguintes recursos: message,chatMessage, event, person, externalItem, bookmark, acrônimo ou qna.

Próximas etapas