Usar a API de Pesquisa da Microsoft para solicitar correções ortográficas

Você pode usar a API de Pesquisa da Microsoft 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 no conteúdo correspondente. Para solicitar correções ortográficas, especifique as seguintes propriedades na propriedade queryAlterationOptions do searchRequest:

  • enableSuggestion para habilitar/desabilitar sugestões de ortografia para a consulta do usuário. Você pode passar true para obter as informações sugeridas de correção ortográfica para erros de digitação na consulta do usuário.

  • enableModification para habilitar/desabilitar as modificações ortográficas para a consulta do usuário. Você pode passar true para obter os resultados da pesquisa para a consulta 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 da modificação ortográfica é maior do que a sugestão ortográfica se ambas estiverem habilitadas.

Se a sugestão do verificador ortográfico estiver desabilitada enquanto a modificação do verificador ortográfico estiver habilitada, os resultados ainda poderão conter a sugestão do verificador ortográfico para a consulta original com o erro de digitação. Isso ocorre por design, pois o recurso fornece a sugestão de ortografia por padrão se a modificação ortográfica estiver habilitada.

Todas as cadeias de caracteres de consulta do usuário devem ser as mesmas para permitir correções ortográficas para pesquisas de várias entidades.

Exemplo 1: Solicitar sugestões ortográficas

O exemplo a seguir consulta os recursos listItem que contêm a cadeia de caracteres accountt e solicita uma sugestão de ortografia para a consulta.

A resposta contém objetos alterationResponse para a sugestão de ortografia.

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 os 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 accounttde digitação . A resposta contém resultados relacionados à cadeia de caracteres account corrigida e aos objetos alterationResponse 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 nos seguintes recursos: message, event, site, drive, driveItem, list, listItem e externalItem.

Próximas etapas