Compartilhar via


Utilizar a API do Microsoft Search para fechar os resultados da pesquisa

Pode utilizar a API de Pesquisa da Microsoft no Microsoft Graph para fechar itens num conjunto de resultados de pesquisa. Isto permite-lhe apresentar resultados de uma forma concisa e legível. Pode especificar os critérios para fechar ao utilizar a propriedade collapseProperties num objeto searchRequest , que contém um ou mais parâmetros collapseProperty para definir campos a serem fechados e limitar o tamanho dos resultados. A propriedade collapseProperties é suportada para os seguintes tipos de entidade:

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

A tabela seguinte lista os cenários de colapso que pode ativar.

Cenários Descrição Exemplo
Colapso básico Fechar por qualquer propriedade queryable única e ordenável ou refinável. Este valor de limite tem de ser um número inteiro entre 1 e 32767. "collapseProperties":[{"fields":["filename"],"limit":3}]
Colapso composto Fechar por campos compostos de propriedades. Não existe um número máximo de campos, mas tem de especificar pelo menos dois campos. Este valor de limite tem de ser um número inteiro entre 1 e 32767. "collapseProperties":[{"fields":["filename","author"],"limit":2}]
Colapso de vários níveis Fechar por colapso nível a nívelPropriedade. Não existe um número máximo de níveis, mas tem de especificar pelo menos dois níveis. O valor limite de cada nível tem de ser um número inteiro entre 1 e 32767 e tem de ser igual ou inferior ao valor limite de nível superior. "collapseProperties":[{"fields":["filename"],"limit":3},{"fields":["author"],"limit":1}]

Exemplos

A tabela seguinte mostra uma lista de exemplo no SharePoint. Os exemplos nesta secção utilizam esta lista para mostrar como funciona a propriedade collapseProperties .

Filename Autor Assunto Rank
Observação Guilherm Poesia 1
Observação Tiago Histórico 2
Observação Robert Cultura 3
Observação Tiago Matemática 4
Observação Tiago Ciência 5
Notebook Tiago Ciência 6
Notebook Guilherm Cultura 7
Notebook Tiago 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
                }
            ]
        }
    ]
}

Agrupe os itens com base em Nome de ficheiro e mostre os três primeiros ("limite": 3) para cada grupo. Como pode ver na tabela seguinte, 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 collapseProperties é 3.

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

Filename Autor Assunto Rank
Observação Guilherm Poesia 1
Observação Tiago Histórico 2
Observação Robert Cultura 3
Observação Tiago Matemática 4
Notebook Tiago Ciência 6
Notebook Guilherm Cultura 7
Notebook Tiago 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 seguinte, a classificação é mantida, mas os resultados são fechados primeiro em Nome de ficheiro e, em seguida, em Autor. Para o primeiro -level collapse on Filename, with a limit of 3, the first three rows remain, rows four and five are removed, and the last three rows remain as is. Para o colapso de segundo nível com um limite de 1, as primeiras três linhas não são alteradas porque cada uma tem um valor de Autor exclusivo. A linha oito está excluída porque James é listado novamente como Autor e essa propriedade tem de ter valores exclusivos.

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

Resposta

Quando utiliza collapseProperties, a resposta contém uma propriedade Booleana isCollapsed para cada resultado. Esta 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 é suportada para os seguintes recursos: mensagem, chatMessage, evento, pessoa, externalItem, marcador, acrónimo ou qna.

Próximas etapas