Verwenden der Microsoft Search-API zum Anfordern von Rechtschreibkorrekturen

Sie können die Microsoft Search-API in Microsoft Graph verwenden, um Rechtschreibkorrekturen anzufordern, um Missübereinstimmungen zwischen Tippfehlern in Benutzerabfragen und richtigen Wörtern in übereinstimmenden Inhalten zu behandeln. Um Rechtschreibkorrekturen anzufordern, geben Sie die folgenden Eigenschaften in der queryAlterationOptions-Eigenschaft der searchRequest an:

  • enableSuggestion zum Aktivieren/Deaktivieren von Rechtschreibvorschlägen für die Benutzerabfrage. Sie können übergeben true , um die informationen zur vorgeschlagenen Rechtschreibkorrektur für Tippfehler in der Benutzerabfrage abzurufen.

  • enableModification , um Rechtschreibänderungen für die Benutzerabfrage zu aktivieren/zu deaktivieren. Sie können übergeben true , um die Suchergebnisse für die korrigierte Abfrage abzurufen , wenn es keine Ergebnisse für die ursprüngliche Abfrage mit Tippfehlern gibt, und die entsprechenden Korrekturinformationen abrufen.

Die Priorität der Rechtschreibänderung ist höher als der Rechtschreibvorschlag, wenn beide aktiviert sind.

Wenn der Rechtschreibvorschlag deaktiviert ist, während die Rechtschreibprüfung aktiviert ist, können die Ergebnisse weiterhin den Rechtschreibvorschlag für die ursprüngliche Abfrage mit dem Tippfehler enthalten. Dies ist beabsichtigt, da das Feature standardmäßig den Rechtschreibvorschlag bereitstellt, wenn die Rechtschreibänderung aktiviert ist.

Alle Benutzerabfragezeichenfolgen sollten identisch sein, um Rechtschreibkorrekturen für Suchvorgänge mehrerer Entitäten zu ermöglichen.

Beispiel 1: Anfordern von Rechtschreibvorschlägen

Das folgende Beispiel fragt listItem-Ressourcen ab, die die Zeichenfolge accountt enthalten, und fordert einen Rechtschreibvorschlag für die Abfrage an.

Die Antwort enthält änderungResponse-Objekte für den Rechtschreibvorschlag.

Anforderung

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

Antwort

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

Beispiel 2: Anfordern von Rechtschreibänderungen

Das folgende Beispiel fragt listItem-Ressourcen ab, die die Zeichenfolge accountt enthalten, und fordert eine Rechtschreibänderung für die Abfrage an.

In diesem Beispiel gibt es keine Ergebnisse für die ursprüngliche Abfrage mit Tippfehler accountt. Die Antwort enthält Ergebnisse im Zusammenhang mit korrigierten Zeichenfolgen account - und Änderungsresponse-Objekten für die Rechtschreibänderung.

Anforderung

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

Antwort

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

Bekannte Einschränkungen

Die Rechtschreibkorrektur wird nur für die folgenden Ressourcen unterstützt: message, event, site, drive, driveItem, list, listItem und externalItem.

Nächste Schritte