Поделиться через


Использование API Microsoft Поиск для запроса исправлений орфографии

API Microsoft Поиск в Microsoft Graph можно использовать для запроса исправлений орфографии для обработки несоответствий между опечатками в пользовательских запросах и правильными словами в сопоставленном содержимом. Чтобы запросить исправления орфографии, укажите следующие свойства в свойстве queryAlterationOptionsобъекта searchRequest:

  • enableSuggestion позволяет включить или отключить орфографические предложения для пользовательского запроса. Вы можете передать true , чтобы получить предлагаемые сведения о исправлении орфографии для опечаток в пользовательском запросе.

  • enableModification , чтобы включить или отключить изменения орфографии для запроса пользователя. Вы можете передать true , чтобы получить результаты поиска для исправленного запроса , если для исходного запроса нет результатов с опечатками, и получить соответствующие сведения об исправлении.

Приоритет изменения орфографии выше, чем предложение орфографии, если они оба включены.

Если предложение средства орфографии отключено при включенном изменении средства орфографии, результаты по-прежнему могут содержать предложение орфографии для исходного запроса с опечаткой. Это предусмотрено по умолчанию, так как функция предоставляет предложение орфографии по умолчанию, если включено изменение орфографии.

Все строки запроса пользователя должны быть одинаковыми, чтобы включить исправления орфографии для поиска нескольких сущностей.

Пример 1. Запрос предложений по орфографии

В следующем примере запрашиваются ресурсы listItem , содержащие строку accountt , и запрашиваются орфографические предложения для запроса.

Ответ содержит объекты измененияResponse для предложения орфографии.

Запрос

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

Отклик

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

Пример 2. Запрос изменений орфографии

В следующем примере выполняется запрос ресурсов listItem , содержащих строку accountt , и запрашивается изменение орфографии для запроса.

В этом примере отсутствуют результаты для исходного запроса с опечаткой accountt. Ответ содержит результаты, связанные с исправленными строками account и изменениямиОтветки объектов для изменения орфографии.

Запрос

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

Отклик

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

Известные ограничения

Исправление орфографии поддерживается только для следующих ресурсов: message, event, site, drive, driveItem, list, listItem и externalItem.

Дальнейшие действия