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.

Próximas etapas