Verwenden der Microsoft Search-API zum Reduzieren von Suchergebnissen

Sie können die Microsoft Search-API in Microsoft Graph verwenden, um Elemente in einem Suchresultset zu reduzieren. Auf diese Weise können Sie Ergebnisse präzise und lesbar anzeigen. Sie können die Kriterien für das Reduzieren angeben, indem Sie die collapseProperties-Eigenschaft in einem searchRequest-Objekt verwenden, das einen oder mehrere collapseProperty-Parameter enthält, um zu reduzierende Felder festzulegen und die Größe der Ergebnisse einzuschränken. Die collapseProperties-Eigenschaft wird für die folgenden Entitätstypen unterstützt:

  • site
  • drive
  • driveItem
  • list
  • listItem
  • externalItem

In der folgenden Tabelle sind die Szenarien zum Reduzieren aufgeführt, die Sie aktivieren können.

Szenarien Beschreibung Beispiel
Einfaches Reduzieren Reduzieren Sie durch eine einzelne abfragbare Eigenschaft und entweder sortierbare oder verfeinerbare Eigenschaft. Dieser Grenzwert muss eine ganze Zahl zwischen 1 und 32767 sein. "collapseProperties":[{"fields":["filename"],"limit":3}]
Verbundzusammenbruch Reduzieren sie durch verbunde Felder von Eigenschaften. Es gibt keine maximale Anzahl von Feldern, aber es müssen mindestens zwei Felder angegeben werden. Dieser Grenzwert muss eine ganze Zahl zwischen 1 und 32767 sein. "collapseProperties":[{"fields":["filename","author"],"limit":2}]
Reduzieren mehrerer Ebenen Reduzieren sie nach Ebene für Ebene collapseProperty. Es gibt keine maximale Anzahl von Ebenen, aber es müssen mindestens zwei Ebenen angegeben werden. Der Grenzwert jeder Ebene muss eine ganze Zahl zwischen 1 und 32767 sein und muss gleich oder kleiner als der Grenzwert der oberen Ebene sein. "collapseProperties":[{"fields":["filename"],"limit":3},{"fields":["author"],"limit":1}]

Beispiele

Die folgende Tabelle zeigt eine Beispielliste in SharePoint. In den Beispielen in diesem Abschnitt wird anhand dieser Liste veranschaulicht, wie die collapseProperties-Eigenschaft funktioniert.

Filename Ursprung Betreff Rang
Hinweis Andy Poesie 1
Hinweis James Verlauf 2
Hinweis Robert Culture 3
Hinweis James Mathematik 4
Hinweis James Naturwissenschaft 5
Notizbuch James Naturwissenschaft 6
Notizbuch Andy Culture 7
Notizbuch James Naturwissenschaft 8

Beispiel 1: Einfaches Reduzieren

Anforderung

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

{
    "requests": [
        {
            "entityTypes": [
                "listItem"
            ],
            "query": {
                "queryString": "note"
            },
            "fields": [
                "filename"
            ],
            "collapseProperties": [
                {
                    "fields": [
                        "filename"
                    ],
                    "limit": 3
                }
            ]
        }
    ]
}

Gruppieren Sie die Elemente basierend auf Dateiname , und zeigen Sie die ersten drei ("Limit": 3) für jede Gruppe an. Wie Sie in der folgenden Tabelle sehen können, wird die Rangfolge beibehalten. Die ersten drei und die letzten drei Zeilen bleiben erhalten, die Zeilen 4 und fünf sind jedoch ausgeschlossen, da der CollapseProperties-Grenzwert 3 beträgt.

Filename Ursprung Betreff Rang
Hinweis Andy Poesie 1
Hinweis James Verlauf 2
Hinweis Robert Culture 3
Notizbuch James Naturwissenschaft 6
Notizbuch Andy Culture 7
Notizbuch James Naturwissenschaft 8

Beispiel 2: Verbundzusammenbruch

Anforderung

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

{
    "requests": [
        {
            "entityTypes": [
                "listItem"
            ],
            "query": {
                "queryString": "note"
            },
            "fields": [
                "filename",
                "author"
            ],
            "collapseProperties": [
                {
                    "fields": [
                        "filename",
                        "author"
                    ],
                    "limit": 2
                }
            ]
        }
    ]
}

In der folgenden Tabelle wird die Rangfolge beibehalten, aber die Ergebnisse werden durch zwei Eigenschaften gleichzeitig reduziert, um eindeutige Kombinationen von Dateiname und Autor zu finden. Dies führt dazu, dass die ersten vier Zeilen beibehalten und Zeile fünf ausgeschlossen werden, da die Kombination aus Notiz (Dateiname) und James (Autor) nur bis zu 2-mal zulässig ist. Die letzten drei Zeilen bleiben aus demselben Grund erhalten.

Filename Ursprung Betreff Rang
Hinweis Andy Poesie 1
Hinweis James Verlauf 2
Hinweis Robert Culture 3
Hinweis James Mathematik 4
Notizbuch James Naturwissenschaft 6
Notizbuch Andy Culture 7
Notizbuch James Naturwissenschaft 8

Beispiel 3: Reduzieren mehrerer Ebenen

Anforderung

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

{
    "requests": [
        {
            "entityTypes": [
                "listItem"
            ],
            "query": {
                "queryString": "note"
            },
            "fields": [
                "filename",
                "author"
            ],
            "collapseProperties": [
                {
                    "fields": [
                        "filename"
                    ],
                    "limit": 3
                },
                {
                    "fields": [
                        "author"
                    ],
                    "limit": 1
                }
            ]
        }
    ]
}

In der folgenden Tabelle wird die Rangfolge beibehalten, aber die Ergebnisse werden zuerst für Filename und dann für Author reduziert. Beim Reduzieren der ersten Ebene für Filename mit einem Grenzwert von 3 bleiben die ersten drei Zeilen erhalten, die Zeilen vier und fünf werden entfernt, und die letzten drei Zeilen bleiben unverändert. Beim Reduzieren der zweiten Ebene mit einem Grenzwert von 1 ändern sich die ersten drei Zeilen nicht, da jede über einen eindeutigen Author-Wert verfügt. Zeile 8 ist ausgeschlossen, da James erneut als Autor aufgeführt wird und diese Eigenschaft eindeutige Werte aufweisen muss.

Filename Ursprung Betreff Rang
Hinweis Andy Poesie 1
Hinweis James Verlauf 2
Hinweis Robert Culture 3
Notizbuch James Naturwissenschaft 6
Notizbuch Andy Culture 7

Antwort

Wenn Sie collapseProperties verwenden, enthält die Antwort eine boolesche isCollapsed-Eigenschaft für jedes Ergebnis. Diese Eigenschaft gibt den Zuklappzustand des Ergebnisses an.

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

{
    "value": [
        {
            "searchTerms": [
                "note"
            ],
            "hitsContainers": [
                {
                    "hits": [
                        {
                            "hitId": "94149344-55e4-4678-b22a-b37a9ed1ffff",
                            "rank": 1,
                            "isCollapsed": true,
                            "summary": "",
                            "resource": {
                                "@odata.type": "#microsoft.graph.listItem",
                                "sharepointIds": {
                                    "listId": "9b786f01-4668-4862-8bbf-443159c0ffff",
                                    "listItemId": "3"
                                },
                                "id": "94149344-55e4-4678-b22a-b37a9ed1ffff",
                                "createdDateTime": "2012-10-10T12:07:57Z",
                                "lastModifiedDateTime": "2022-11-30T08:38:47Z",
                                "parentReference": {
                                    "id": "01PPFMTLYPOGQADPQCOJAJTXZLKETTQP6F",
                                    "siteId": "microsoftapc-my.sharepoint.com,5b8af7a0-0c23-4719-ab6c-457c2104ea8a,2e4df0d0-c83a-473b-bed1-2d2046966d31"
                                },
                                "webUrl": "https://microsoftapc-my.sharepoint.com/Documents/Notes"
                            }
                        }
                    ],
                    "total": 4281349,
                    "moreResultsAvailable": true
                }
            ]
        }
    ],
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(microsoft.graph.searchResponse)"
}

Bekannte Einschränkungen

Die collapseProperties-Eigenschaft wird für die folgenden Ressourcen nicht unterstützt: message, chatMessage, event, person, externalItem, bookmark, akronym oder qna.

Nächste Schritte