Usar a API Pesquisa do Microsoft Graph para passar várias solicitações de pesquisa
A API do Microsoft Pesquisa permite que você inclua várias solicitações de pesquisa em um único corpo de solicitação. Esse recurso está atualmente disponível para OneDrive e SharePoint, bem como para conteúdo externo ingerido e indexado por conectores do Microsoft Graph e tipos de recursos de resposta, incluindo indicadores, acrônimos e Q&A.
Tipos de entidade com suporte
Os tipos de entidade com suporte para incluir várias solicitações de pesquisa em um corpo de solicitação são: site, unidade, driveItem, list,listItem, externalItem, bookmark, acrônimo e qna. Os tipos de entidade no mesmo bloco de solicitação devem aderir às relações de tipo de entidade com suporte e às combinações definidas no tópico de pesquisa de intercalação .
Exemplos
Exemplo 1: Pesquisa com tipos de arquivo do SharePoint e combinações de indicador/acrônimo
Solicitação
POST https://graph.microsoft.com/beta/search/query
Content-Type: application/json
{
"requests": [
{
"entityTypes": [
"bookmark", "acronym"
],
"query": {
"queryString": "POC"
},
"from": 0,
"size": 25
},
{
"entityTypes": [
"listItem",
"site"
],
"query": {
"queryString": "POC"
},
"from": 0,
"size": 25
}
]
}
Resposta
O seguinte mostra uma resposta que pesquisa com tipos de arquivo do SharePoint e combinações de indicador/acrônimo.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#search",
"value": [
{
"searchTerms": [
"POC"
],
"hitsContainers": [
{
"total": 1,
"moreResultsAvailable": false,
"hits": [
{
"hitId": "adce5789-c324-485a-a8bf-66bb809527ff",
"rank": 1,
"summary": "",
"resource": {
"@odata.type": "#microsoft.graph.search.acronym",
"id": "adce5789-c324-485a-a8bf-66bb809527ff",
"displayName": "POC",
"description": "Acronym in Spanish",
"webUrl": "",
"standsFor": "prueba de concepto"
}
},
{
"hitId": "1c0599db-2e89-4327-827a-3935c999f6cc",
"rank": 2,
"summary": "",
"resource": {
"@odata.type": "#microsoft.graph.search.bookmark",
"id": "1c0599db-2e89-4327-827a-3935c999f6cc",
"displayName": "POC",
"description": "A proof of concept (POC) is an exercise in which work is focused on determining whether an idea can be turned into a reality. ",
"webUrl": "https://en.wikipedia.org/wiki/POC"
}
}
]
}
]
},
{
"searchTerms": [
"POC"
],
"hitsContainers": [
{
"total": 2,
"moreResultsAvailable": false,
"hits": [
{
"hitId": "adce5789-c324-485a-a8bf-66bb809527ff",
"rank": 3,
"summary": "Test listItem 1",
"resource": {
"@odata.type": "#microsoft.graph.listItem",
"createdDateTime": "2019-10-07T10:00:08Z",
"lastModifiedDateTime": "2019-10-07T10:00:11Z",
"title": "Here is a summary of your messages from last week - New Feature: Live captions in English-US a POC"
}
},
{
"hitId": "microsoft.sharepoint.com,9fb3f597-167e-4c3d-b5e6-1ddc18d22d48,c53cd46e-9033-4b42-af94-0ad76ab75fd0",
"rank": 4,
"summary": "Test site",
"resource": {
"@odata.type": "#microsoft.graph.site",
"createdDateTime": "2019-10-07T10:00:08Z",
"lastModifiedDateTime": "2019-10-07T10:00:11Z",
"title": "Test site summary POC"
}
}
]
}
]
}
]
}
Exemplos de solicitação ruins
Os exemplos a seguir mostram solicitações que resultam em uma resposta de erro de solicitação incorreta. Para obter detalhes sobre limitações com solicitações de pesquisa, consulte [Limitações conhecidas(#known-limitações).
Exemplo 1: Pesquisa com os mesmos tipos de entidade em blocos de solicitação separados no corpo da solicitação
Solicitação
POST https://graph.microsoft.com/beta/search/query
Content-Type: application/json
{
"requests": [
{
"entityTypes": [
"bookmark"
],
"query": {
"queryString": "POC"
},
"from": 0,
"size": 25
},
{
"entityTypes": [
"bookmark",
],
"query": {
"queryString": "POC"
},
"from": 0,
"size": 25
}
]
}
Resposta
A seguir está um exemplo de uma resposta de solicitação incorreta.
HTTP/1.1 200 OK
Content-type: application/json
{
"error": {
"code": "BadRequest",
"message": "SearchRequest Invalid (Entity types must not be duplicates in multiple entity requests)",
"target": "",
"details": [
{
"code": "Microsoft.SubstrateSearch.Api.ErrorReporting.ResourceBasedExceptions.BadRequestException",
"message": "Entity types must not be duplicates in multiple entity requests",
"target": "",
"httpCode": 400
}
],
"httpCode": 400
}
}
Exemplo 2: Pesquisa com os tipos de entidade de arquivo em blocos de solicitação separados no corpo da solicitação
Solicitação
POST https://graph.microsoft.com/beta/search/query
Content-Type: application/json
{
"requests": [
{
"entityTypes": [
"site"
],
"query": {
"queryString": "POC"
},
"from": 0,
"size": 25
},
{
"entityTypes": [
"drive",
],
"query": {
"queryString": "POC"
},
"from": 0,
"size": 25
}
]
}
Resposta
A seguir está um exemplo de uma resposta de solicitação incorreta.
HTTP/1.1 200 OK
Content-type: application/json
{
"error": {
"code": "BadRequest",
"message": "SearchRequest Invalid (Entity types must not be duplicates in multiple entity requests)",
"target": "",
"details": [
{
"code": "Microsoft.SubstrateSearch.Api.ErrorReporting.ResourceBasedExceptions.BadRequestException",
"message": "File entity types can only appear in one entity request",
"target": "",
"httpCode": 400
}
],
"httpCode": 400
}
}
Limitações conhecidas
- Os valores usados para as propriedades de etamanho em diferentes instâncias searchRequest no corpo da solicitação devem ser os mesmos. O valor usado para a propriedade queryString em diferentes instâncias searchQuery em diferentes instâncias searchRequest deve ser o mesmo.
- Tipos de entidade duplicados em diferentes solicitações de pesquisa no corpo da solicitação não são permitidos. Por exemplo, você não pode ter uma pesquisa de indicadorRequest e outra pesquisa de indicadorRequest em um corpo de solicitação.
- Os tipos de entidade de arquivo (site, unidade, driveItem, listItem e listItem) só podem estar presentes na mesma solicitação de pesquisa de um corpo de solicitação. Por exemplo, você não pode incluir uma entidade de site em uma pesquisaRequest e uma entidade de unidade em uma pesquisa diferenteRequest no corpo da solicitação.
- A funcionalidade do soletrador só pode ser usada uma vez e deve ser incluída no primeiro searchRequest no corpo da solicitação.
Próximas etapas
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de