Anpassen von Suchergebnissen in SharePoint
In diesem Artikel erfahren Sie, wie Sie in einem Suchergebnissatz in SharePoint ähnliche Elemente gruppieren oder doppelte Elemente entfernen, sodass die Ergebnisse übersichtlich und gut lesbar angezeigt werden.
In Suchergebnissen werden durch Gruppierung zwei oder mehr ähnliche Elemente in einem Suchergebnissatz reduziert, damit die Anzeige für einen Benutzer besser lesbar ist. Die Duplikatentfernung in Suchergebnissen ist Teil der Gruppierung; hierbei werden identische oder nahezu identische Elemente aus dem Resultset entfernt. Je nach den vom SharePoint-Administrator festgelegten Einstellungen kann der Benutzer möglicherweise die Suchergebnisse später erweitern und die einzelnen reduzierten Ergebnisse anzeigen.
Im Folgenden sehen Sie Beispiele für Methoden zur Gruppierung von Suchergebnissen:
- Duplikaterkennung - hierbei werden fast identische Dokumente aus dem Ergebnissatz entfernt.
- Websitereduzierung - hierbei wird nur das relevanteste Element jeder Website im Ergebnissatz angezeigt.
- Dokumentenmappenreduzierung - hierbei wird nur ein Treffer für jede Dokumentbibliothek in SharePoint angezeigt.
Sie können die Kriterien für das Reduzieren oder Duplizieren programmgesteuert angeben, indem Sie die folgenden KeywordQuery-Eigenschaften innerhalb des Query-Objektmodells verwenden:
- CollapseSpecification
- TrimDuplicates
- TrimDuplicatesOnProperty
- TrimDuplicatesKeepCount
- TrimDuplicatesIncludeId
Reduzieren ähnlicher Suchergebnisse mithilfe der CollapseSpecification-Eigenschaft
Die CollapseSpecification-Eigenschaft verwendet einen Spec-Parameter, der mehrere durch ein Komma oder ein Leerzeichen getrennte Felder enthalten kann, die bei gemeinsamer Auswertung einen Satz von Kriterien für den Reduziervorgang angeben.
SyntaxCollapseSpecification = Spec
In der folgenden Tabelle sind die Felder des Spec-Parameters aufgeführt.
Tabelle 1. Felder des Spec-Parameters
Element in Parameter | Beschreibung |
---|---|
Spec | Subspec(<space>Subspec)* |
Subspec | Prop(','Prop)*[':'Dups] |
Prop | Eine gültige verwaltete Eigenschaft oder ein Alias einer verwalteten Eigenschaft. Bei Prop wird die Groß-/Kleinschreibung nicht beachtet. Die verwaltete Eigenschaft muss abfragbar und entweder sortier- oder einschränkbar sein. |
Dups | Eine ganze Zahl, die die Anzahl der beizubehaltenden Elemente angibt. Der Standardwert ist 1. |
<Raum> | Eigenschaften werden mit dem OR-Operator kombiniert. |
, | Eigenschaften werden mit dem AND-Operator kombiniert. |
* | Gibt mehr Elemente an. |
() or [] | Gibt optionale Elemente an. |
Wenn die Felder in Spec durch Kommas getrennt sind, werden die Felder mithilfe des AND-Operators kombiniert. Wenn alle angegebenen Felder erfüllt sind, werden die Elemente reduziert.
Wenn die Felder in Spec dagegen durch Leerzeichen getrennt sind, werden die Felder (oder Subspecs) mithilfe einer Erweiterung kombiniert, die sowohl den AND-Operator als auch den OR-Operator enthält. Beispiel: Ein Ausdruck wie Category:3 Product:2
wird intern in den Ausdruck (Category AND Product) OR (Category)
mit einem Zähler für jedes Element transformiert; hier ein Maximum von zwei für das erste und drei für das letzte Element. Elemente werden reduziert, wenn einige der angegebenen Felder erfüllt sind.
Beispiele für die Verwendung von CollapseSpecification
Die folgende Tabelle enthält einen Produktkatalog der Firma Contoso. In den nächsten Beispielen wird anhand dieses Katalogs die Funktionsweise der CollapseSpecification-Eigenschaft veranschaulicht.
Kategorie | Produkt | Variant | Titel |
---|---|---|---|
Laptops | WWI | 19W X0196 Black | Computer 1 |
Laptops | Adventure Works | 12 M1201 Red | Computer 2 |
Laptops | Adventure Works | 15.4W M1548 White | Computer 3 |
Laptops | Proseware | 19 X910 Black | Computer 4 |
Laptops | Proseware | Laptop19 X910 Black | Computer 5 |
Desktops | Adventure Works | 2.33 XD233 Silver | Computer 6 |
Desktops | WWI | 2.33 X2330 Black | Computer 7 |
Desktops | Adventure Works | 1.60 ED160 White | Computer 8 |
Desktops | WWI | 3.0 M0300 Silver | Computer 9 |
Beispiel: Gruppieren nach Category
Gruppieren Sie zunächst die Elemente nach Category, und zeigen Sie die zwei obersten für jede Gruppe an (also "Category:2"
). Zeigen Sie dann für jede Category eine entsprechende Anzahl eindeutiger Products an (also "Product:1").
SyntaxCollapseSpecification="Category:2 Product:1"
Die folgenden Ergebnisse sollten zurückgegeben werden.
Kategorie | Produkt | Variant | Titel |
---|---|---|---|
Laptops | WWI | 19W X0196 Black | Computer 1 |
Laptops | Adventure | 12 M1201 Red | Computer 2 |
Desktops | Adventure Works | 2.33 XD233 Silver | Computer 6 |
Desktops | WWI | 2.33 X2330 Black | Computer 7 |
Verwenden Sie den folgenden Code, um die Suchergebnisse mithilfe der CollapseSpecification-Eigenschaft zu reduzieren.
using (var context = new ClientContext("http://localhost"))
{
var query = new KeywordQuery(context)
{
QueryText = "Title:Computer",
CollapseSpecification = "Category:3 Product:1",
};
var executor = new SearchExecutor(context);
var results = executor.ExecuteQuery(query);
context.ExecuteQuery();
foreach (var result in results.Value[0].ResultRows)
{
Console.WriteLine(result["Title"]);
}
}
Beispiel: Gruppieren nach Category und Product
Gruppieren Sie zunächst die Elemente nach Category und nach Product. Zeigen Sie anschließend jede eindeutige Kombination an.
SyntaxCollapseSpecification="Category,Product:1"
Die folgenden Ergebnisse sollten zurückgegeben werden.
Kategorie | Produkt | Variant | Titel |
---|---|---|---|
Laptops | WWI | 19W X0196 Black | Computer 1 |
Laptops | Adventure Works | 12 M1201 Red | Computer 2 |
Laptops | Proseware | 19 X910 Black | Computer 4 |
Desktops | Adventure Works | 2.33 XD233 Silver | Computer 6 |
Desktops | WWI | 2.33 X2330 Black | Computer 7 |
Entfernen doppelter Suchergebnisse mithilfe der TrimDuplicates-Eigenschaft
Verwenden Sie TrimDuplicates, um anzugeben, ob die doppelten Suchergebnisse aus dem Suchergebnissatz entfernt werden sollen. TrimDuplicates ist standardmäßig auf true festgelegt.
Wenn Sie TrimDuplicates mit TrimDuplicatesOnProperty oder vorzugsweise mit CollapseSpecification verwenden, wird TrimDuplicates auf false festgelegt.
SyntaxTrimDuplicates = <$true | $false>
Entfernen doppelter Suchergebnisse mithilfe der TrimDuplicatesOnProperty-Eigenschaft
Verwenden Sie TrimDuplicatesOnProperty, um anzugeben, ob eine nicht standardmäßige verwaltete Eigenschaft als Basis für das Entfernen von Duplikaten verwendet werden soll. Der Standardwert ist die verwaltete Eigenschaft DocumentSignature. Die verwaltete Eigenschaft muss den Typ Integer oder String aufweisen. Indem Sie eine verwaltete Eigenschaft verwenden, die eine Elementgruppe darstellt, können Sie dieses Feature zum Reduzieren von Feldern nutzen.
SyntaxTrimDuplicatesOnProperty = <managed property>
Hinweis
Verwenden Sie in SharePoint nach Möglichkeit CollapseSpecification. TrimDuplicatesOnProperty steht nur für Abwärtskompatibilität zur Verfügung.
Kürzen doppelter Suchergebnisse mithilfe der Eigenschaft „TrimDuplicatesKeepCount“
Verwenden Sie TrimDuplicatesKeepCount, um die Anzahl der beizubehaltenden Dokumente anzugeben, wenn TrimDuplicates auf true festgelegt ist. Wenn TrimDuplicates auf einer verwalteten Eigenschaft basiert, die als Gruppenbezeichner verwendet werden kann, z. B. eine Website-ID, können Sie steuern, wie viele Ergebnisse für jede Gruppe zurückgegeben werden. Zurückgegeben werden die Elemente mit dem höchsten dynamischen Rang in jeder Gruppe.
SyntaxTrimDuplicatesKeepCount = <number>
Abrufen doppelter Suchergebnisse mithilfe der TrimDuplicatesIncludeId-Eigenschaft
Verwenden Sie TrimDuplicatesIncludeId, um die Duplikate eines Dokuments abzurufen, wenn TrimDuplicates auf true und TrimDuplicatesOnProperty oder CollapseSpecification auf false festgelegt ist.
Die Dokument-ID docid wird verwendet, um die Duplikate eines bestimmten Dokuments abzurufen.
SyntaxTrimDuplicatesIncludeId = <docid>
Hinweis
Die verwaltete fcoid-Eigenschaft in FAST Search Server 2010 für SharePoint wurde durch die verwaltete Eigenschaft docid in SharePoint ersetzt.