Compartilhar via


Usar a API do Microsoft Pesquisa para ressarir os resultados da pesquisa

Você pode usar a API do Microsoft Pesquisa no Microsoft Graph para recolher itens em um conjunto de resultados de pesquisa. Isso permite exibir resultados de forma concisa e legível. Você pode especificar os critérios para o colapso 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 colapso que você pode habilitar.

Cenários Descrição Exemplo
Colapso básico Entre em colapso por qualquer propriedade queryable e classificável ou refinável. Esse valor limite deve ser um inteiro entre 1 e 32767. "collapseProperties":[{"fields":["filename"],"limit":3}]
Colapso composto Colapso 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 inteiro entre 1 e 32767. "collapseProperties":[{"fields":["filename","author"],"limit":2}]
Colapso de vários níveis Colapso por colapso nível a nívelProperty. Não há um 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 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 exemplos no SharePoint. Os exemplos nesta seção usam essa lista para mostrar como funciona a propriedade collapseProperties .

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

Exemplo 1: colapso 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
                }
            ]
        }
    ]
}

Agrupar os itens com base em Nome de Arquivo e mostrar 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 últimas três linhas permanecem, mas as linhas quatro e cinco são excluídas porque o limite de collapseProperties é 3.

Filename Autor Assunto Rank
Observação Andy Poesia 1
Observação James Histórico 2
Observação Robert Cultura 3
Notebook James Ciência 6
Notebook Andy Cultura 7
Notebook James 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, o ranking é mantido, mas os resultados são recolhidos por duas propriedades simultaneamente para encontrar combinações exclusivas de Filename e Author. Isso resulta em manter as quatro primeiras linhas e excluir a linha cinco, pois a combinação de Nota (Nome do Arquivo) e James (Autor) só é permitida até duas vezes. As últimas três linhas permanecem pelo mesmo motivo.

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

Exemplo 3: colapso de 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 Filename e, em seguida, em Autor. Para o colapso de primeiro nível em Filename, 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á. Para o colapso 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 autor exclusivo. A linha oito é excluída porque James está listado novamente como Autor e essa propriedade deve ter valores exclusivos.

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

Resposta

Quando você usa collapseProperties, a resposta contém uma propriedade booliana isCollapsed para cada resultado. Essa propriedade indica o estado de colapso 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