Usar a API do Microsoft Pesquisa para solicitar correções ortográficas
Você pode usar a API do Microsoft Pesquisa no Microsoft Graph para solicitar correções ortográficas para lidar com incompatibilidades entre erros de digitação em consultas de usuário e palavras corretas em conteúdo correspondente. Para solicitar correções ortográficas, especifique as seguintes propriedades na propriedade queryAlterationOptions da searchRequest:
enableSuggestion para habilitar/desabilitar sugestões ortográficas para a consulta de usuário. Você pode passar
true
para obter as informações de correção ortográfica sugeridas para erros de digitação na consulta de usuário.enableModification para habilitar/desabilitar modificações ortográficas para a consulta de usuário. Você pode passar
true
para obter os resultados da pesquisa corrigida quando não houver resultados para a consulta original com erros de digitação e obter as informações de correção correspondentes.
A prioridade de modificação ortográfica é maior do que a sugestão ortográfica se ambos estiverem habilitados.
Se a sugestão ortográfica estiver desabilitada enquanto a modificação ortográfica estiver habilitada, os resultados ainda poderão conter a sugestão de soletrador para a consulta original com o erro de digitação. Isso é por design, pois o recurso fornece a sugestão ortográfica por padrão se a modificação ortográfica estiver habilitada.
Todas as cadeias de caracteres de consulta de usuário devem ser as mesmas para habilitar correções ortográficas para pesquisas de várias entidades.
Exemplo 1: Solicitar sugestões ortográficas
O exemplo a seguir consulta recursos listItem que contêm a cadeia de caracteres accountt
e solicita uma sugestão ortográfica para a consulta.
A resposta contém objetos alterationResponse para a sugestão ortográfica.
Solicitação
POST https://graph.microsoft.com/beta/search/query
Content-Type: application/json
{
"requests": [
{
"entityTypes": [
"listItem"
],
"query": {
"queryString": "accountt"
},
"from": 0,
"size": 25,
"queryAlterationOptions": {
"enableSuggestion": true,
"enableModification": false
}
}
]
}
Resposta
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#Collection(microsoft.graph.searchResponse)",
"value": [
{
"searchTerms": [
"accountt"
],
"hitsContainers": [
{
"total": 0,
"moreResultsAvailable": false
}
],
"queryAlterationResponse": {
"@odata.type": "#microsoft.substrateSearch.alterationResponse",
"originalQueryString": "accountt",
"queryAlteration": {
"@odata.type": "#microsoft.substrateSearch.searchAlteration",
"alteredQueryString": "account",
"alteredHighlightedQueryString": "account",
"alteredQueryTokens": [
{
"offset": 0,
"length": 8,
"suggestion": "account"
}
]
},
"queryAlterationType": "Suggestion"
}
}
]
}
Exemplo 2: solicitar modificações ortográficas
O exemplo a seguir consulta recursos listItem que contêm a cadeia de caracteres accountt
e solicita uma modificação ortográfica para a consulta.
Neste exemplo, não há resultados para a consulta original com erro de digitação accountt
. A resposta contém resultados relacionados a objetos de cadeia de caracteres account
e alterações corrigidosResponse para a modificação ortográfica.
Solicitação
POST https://graph.microsoft.com/beta/search/query
Content-Type: application/json
{
"requests": [
{
"entityTypes": [
"listItem"
],
"query": {
"queryString": "accountt"
},
"from": 0,
"size": 25,
"queryAlterationOptions": {
"enableSuggestion": true,
"enableModification": true
}
}
]
}
Resposta
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#Collection(microsoft.graph.searchResponse)",
"value": [
{
"searchTerms": [
"account"
],
"hitsContainers": [
{
"total": 1,
"moreResultsAvailable": false,
"hits": [
{
"hitId": "FlULeN/ui/1GjLx1rUfio5UAAEl",
"rank": 1,
"summary": "",
"resource": {
"@odata.type": "#microsoft.graph.listItem",
"createdDateTime": "2019-06-10T06:37:43Z",
"lastModifiedDateTime": "2019-06-10T06:37:43Z",
"name": "web_part_test_long Notebook",
"webUrl": "https://contoso.sharepoint.com/sites/contoso-team/Lists/Issue tracker list/DispForm.aspx?ID=1",
"sharepointIds": {
"listId": "33498de0-d695-4d23-ac26-e1bf95a3206e",
"listItemId": "13"
},
"createdBy": {
"user": {
"displayName": "System Account"
}
},
"lastModifiedBy": {
"user": {
"displayName": "System Account"
}
},
"parentReference": {
"sharepointIds": {
"listId": "da61a2b0-4120-4a3f-812b-0fc0d79bf16b"
},
"siteId": "m365x231305.sharepoint.com,5724d91f-650c-4810-83cc-61a8818917d6,c3ba25dc-2c9f-48cb-83be-74cdf68ea5a0"
}
}
}
]
}
],
"queryAlterationResponse": {
"@odata.type": "#microsoft.substrateSearch.alterationResponse",
"originalQueryString": "accountt",
"queryAlteration": {
"@odata.type": "#microsoft.substrateSearch.searchAlteration",
"alteredQueryString": "account",
"alteredHighlightedQueryString": "account",
"alteredQueryTokens": [
{
"offset": 0,
"length": 8,
"suggestion": "account"
}
]
},
"queryAlterationType": "Modification"
}
}
]
}
Limitações conhecidas
A correção ortográfica só tem suporte para os seguintes recursos: mensagem, evento, site, unidade, driveItem, list, listItem e externalItem.