Uso de la API de Microsoft Búsqueda para solicitar correcciones ortográficas

Puede usar microsoft Búsqueda API en Microsoft Graph para solicitar correcciones ortográficas para controlar las discrepancias entre errores tipográficos en las consultas de usuario y palabras correctas en contenido coincidente. Para solicitar correcciones ortográficas, especifique las siguientes propiedades en la propiedad queryAlterationOptions de searchRequest:

  • enableSuggestion para habilitar o deshabilitar sugerencias ortográficas para la consulta del usuario. Puede pasar true para obtener la información de corrección ortográfica sugerida para errores tipográficos en la consulta del usuario.

  • enableModification para habilitar o deshabilitar las modificaciones ortográficas para la consulta del usuario. Puede pasar true para obtener los resultados de búsqueda de la consulta corregida cuando no hay resultados para la consulta original con errores tipográficos y obtener la información de corrección correspondiente.

La prioridad de la modificación ortográfica es mayor que la sugerencia ortográfica si ambos están habilitados.

Si la sugerencia del corrector ortográfico está deshabilitada mientras está habilitada la modificación del corrector ortográfico, los resultados pueden contener la sugerencia del corrector ortográfico de la consulta original con el error tipográfico. Esto es por diseño, porque la característica proporciona la sugerencia ortográfica de forma predeterminada si la modificación ortográfica está habilitada.

Todas las cadenas de consulta de usuario deben ser las mismas para habilitar las correcciones ortográficas para las búsquedas de varias entidades.

Ejemplo 1: Solicitar sugerencias ortográficas

En el ejemplo siguiente se consultan los recursos listItem que contienen la cadena accountt y se solicita una sugerencia ortográfica para la consulta.

La respuesta contiene objetos alterationResponse para la sugerencia ortográfica.

Solicitud

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
            }
        }
    ]
}

Respuesta

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"
            }
        }
    ]
}

Ejemplo 2: Solicitar modificaciones ortográficas

En el ejemplo siguiente se consultan los recursos listItem que contienen la cadena accountt y se solicita una modificación ortográfica para la consulta.

En este ejemplo, no hay resultados para la consulta original con el tipo accountt. La respuesta contiene resultados relacionados con los objetos string account y alterationResponse corregidos para la modificación ortográfica.

Solicitud

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
            }
        }
    ]
}

Respuesta

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"
            }
        }
    ]
}

Limitaciones conocidas

La corrección ortográfica solo se admite para los siguientes recursos: message, event, site, drive, driveItem, list, listItem y externalItem.

Pasos siguientes