Compartilhar via


Utilizar a API de Pesquisa da Microsoft para pedir correções ortográficas

Pode utilizar a API de Pesquisa da Microsoft no Microsoft Graph para pedir correções ortográficas para lidar com erros de digitação em consultas de utilizador e corrigir palavras em conteúdos correspondentes. Para pedir correções ortográficas, especifique as seguintes propriedades na propriedade queryAlterationOptions da searchRequest:

  • enableSuggestion para ativar/desativar sugestões de ortografia para a consulta do utilizador. Pode transmitir true para obter as informações de correção ortográfica sugeridas para erros de digitação na consulta do utilizador.

  • enableModification para ativar/desativar modificações ortográficas para a consulta do utilizador. Pode transmitir true para obter os resultados da pesquisa da consulta corrigida quando não existirem 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 é superior à sugestão de ortografia se ambas estiverem ativadas.

Se a sugestão de ortografia estiver desativada enquanto a modificação ortográfica estiver ativada, os resultados ainda podem conter a sugestão de ortografia para a consulta original com o erro de digitação. Isto é por predefinição, porque a funcionalidade fornece a sugestão de ortografia por predefinição se a modificação ortográfica estiver ativada.

Todas as cadeias de consulta do utilizador devem ser as mesmas para ativar correções ortográficas para pesquisas de várias entidades.

Exemplo 1: pedir sugestões de ortografia

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

A resposta contém os 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: Pedir modificações ortográficas

O exemplo seguinte consulta os recursos listItem que contêm a cadeia accountt e pede uma modificação ortográfica para a consulta.

Neste exemplo, não existem resultados para a consulta original com typo accountt. A resposta contém resultados relacionados com a cadeia account corrigida e os 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ó é suportada para os seguintes recursos: mensagem, evento, site, unidade, driveItem, lista, listItem e externalItem.

Próximas etapas