Verwenden der Microsoft Search-API zum Durchsuchen von Outlook-Nachrichten

Verwenden Sie die Microsoft Search-API in Microsoft Graph, um nach Informationen in E-Mail-Nachrichten zu suchen, Nachrichten nach Relevanz zu geben und eine dedizierte Suchoberfläche zu rendern. Die Suche gilt für den Nachrichtentext und die Anlagen von Nachrichten im eigenen Postfach des angemeldeten Benutzers.

Achtung

Das Such-API-Schema wurde in der Betaversion geändert. Einige Eigenschaften in einer Suchanforderung und -antwort wurden umbenannt oder entfernt. Weitere Informationen finden Sie unter Warnung zur Einstellung der Schemaänderung. Die Beispiele in diesem Thema zeigen das aktuelle Schema.

Eine Suchabfrage kann Filter enthalten, die Endbenutzer in das Textfeld Search in Outlook eingeben.

Die Nachrichtensuchergebnisse werden nach receivedDateTime in absteigender Reihenfolge sortiert.

Die Nachrichtensuche gilt für Geschäfts-, Schul- oder Unikonten. Benutzer können ihr eigenes Postfach durchsuchen, aber keine delegierten Postfächer durchsuchen. Weitere Informationen finden Sie unter Bekannte Einschränkungen.

Die Nachrichtensuche sucht auch nach Anlagen. Die unterstützten Dateitypen für die Suche nach Nachrichtenanlagen sind identisch mit denen für die SharePoint Online-Suche.

Beispiel 1: Search Nachrichten im Postfach eines Benutzers

Das folgende Beispiel fragt Nachrichten im Postfach des angemeldeten Benutzers ab, die die Zeichenfolge "contoso" in einem beliebigen Teil der Nachricht (Absendername, Betreff, Nachrichtentext oder anlagen) enthalten. Die Abfrage gibt die ersten 25 Ergebnisse zurück. Die Suchergebnisse werden nach absteigenden DateTime-Daten sortiert.

Anforderung

POST https://graph.microsoft.com/v1.0/search/query
Content-Type: application/json

{
  "requests": [
    {
      "entityTypes": [
        "message"
      ],
      "query": {
        "queryString": "contoso"
      },
      "from": 0,
      "size": 25
    }
  ]
}

Antwort

Im Folgenden finden Sie ein Beispiel für die Antwort, die eine Nachricht enthält, die dem Suchkriterium entspricht.

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#search",
  "value": [
    {
      "searchTerms": [
        "contoso"
      ],
      "hitsContainers": [
        {
          "total": 1,
          "moreResultsAvailable": false,
          "hits": [
            {
              "hitId": "ptWLQ4o6HYpQg8xmAAATzOzRAAA=",
              "rank": 1,
              "summary": "Here is a summary of your messages from last week",
              "resource": {
                "@odata.type": "#microsoft.graph.message",
                "createdDateTime": "2019-10-07T10:00:08Z",
                "lastModifiedDateTime": "2019-10-07T10:00:11Z",
                "receivedDateTime": "2019-10-07T10:00:09Z",
                "sentDateTime": "2019-10-07T09:59:52Z",
                "hasAttachments": false,
                "subject": "Weekly digest: Microsoft 365 changes",
                "bodyPreview": "Here is a summary of your messages from last week -   New Feature: Live captions in English-US a",
                "importance": "normal",
                "replyTo": [
                  {
                    "emailAddress": {
                      "name": "Goncalo Torres"
                    }
                  }
                ],
                "sender": {
                  "emailAddress": {
                    "name": "Office365 Message Center",
                    "address": "gtorres@contoso.com"
                  }
                },
                "from": {
                  "emailAddress": {
                    "name": "Office365 Message Center",
                    "address": "gtorres@contoso.com"
                  }
                }
              }
            }
          ]
        }
      ]
    }
  ]
}

Beispiel 2: Search Meldungen zu den wichtigsten Ergebnissen

Im folgenden Beispiel wird die in Beispiel 1 gezeigte Suchabfrage verwendet und die Ergebnisse nach Relevanz sortiert.

Anforderung

POST https://graph.microsoft.com/v1.0/search/query
Content-Type: application/json

{
  "requests": [
    {
      "entityTypes": [
        "message"
      ],
      "query": {
        "queryString": "contoso"
      },
      "from": 0,
      "size": 15,
      "enableTopResults": true
    }
  ]
}

Antwort

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#search",
  "value": [
    {
      "searchTerms": [
        "contoso"
      ],
      "hitsContainers": [
        {
          "total": 1,
          "moreResultsAvailable": false,
          "hits": [
            {
              "hitId": "ptWLQ4o6HYpQg8xmAAATzOzRAAA=",
              "rank": 1,
              "summary": "Here is a summary of your messages from last week",
              "resource": {
                "@odata.type": "#microsoft.graph.message",
                "createdDateTime": "2019-10-07T10:00:08Z",
                "lastModifiedDateTime": "2019-10-07T10:00:11Z",
                "receivedDateTime": "2019-10-07T10:00:09Z",
                "sentDateTime": "2019-10-07T09:59:52Z",
                "hasAttachments": false,
                "subject": "Weekly digest: Microsoft 365 changes",
                "bodyPreview": "Here is a summary of your messages from last week -   New Feature: Live captions in English-US a",
                "importance": "normal",
                "replyTo": [
                  {
                    "emailAddress": {
                      "name": "Goncalo Torres"
                    }
                  }
                ],
                "sender": {
                  "emailAddress": {
                    "name": "Office365 Message Center",
                    "address": "gtorres@contoso.com"
                  }
                },
                "from": {
                  "emailAddress": {
                    "name": "Office365 Message Center",
                    "address": "gtorres@contoso.com"
                  }
                }
              }
            }
          ]
        }
      ]
    }
  ]
}

Bekannte Einschränkungen

  • Sie können nur auf das eigene Postfach des angemeldeten Benutzers zugreifen. Das Durchsuchen delegierter Postfächer wird nicht unterstützt.
  • Bei Nachrichten enthält die Total-Eigenschaft des searchHitsContainer-Typs die Anzahl der Ergebnisse auf der Seite, nicht die Gesamtzahl der übereinstimmenden Ergebnisse.
  • Das Sortieren von Ergebnissen wird für Ereignisse nicht unterstützt. Eine Sortierklausel in der Anforderung gibt den Fehlercode "Ungültige Anforderung" in der Antwort zurück.

Nächste Schritte