Freigeben über


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:

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.

Siehe auch