Usar la API Búsqueda de Microsoft en Microsoft Graph para solicitar la corrección ortográfica (versión preliminar)

Puede usar la API de Búsqueda de Microsoft para solicitar correcciones ortográficas para controlar las discrepancias entre errores tipográficos en consultas de usuario y palabras correctas en contenidos coincidentes. Para solicitar correcciones ortográficas, especifique las siguientes propiedades en la propiedad queryAlterationOptions del cuerpo de la solicitud del método de consulta:

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

  • enableModification para habilitar o deshabilitar las modificaciones ortográficas para la consulta de usuario. Puede pasar 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 true información de corrección correspondiente.

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

Todas las cadenas de consulta de usuario deben ser las mismas para habilitar 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 la cadena corregida "account" y los objetos alterationResponse 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 es compatible con los siguientes recursos: message, event, site, drive, driveItem, list, listItem y externalItem.

Pasos siguientes