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.