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.