Freigeben über


Rangfolge und Sortierung

Informationen zum Sortieren der Abfrageergebnisse für FAST Search Server 2010 for SharePoint.

Letzte Änderung: Donnerstag, 1. September 2011

Sie haben vier Möglichkeiten, den Sortiermodus für die Abfrageergebnisse für FAST Search Server 2010 for SharePoint anzugeben:

Inhalt dieses Artikels
Angeben der Sortierung in einer Abfrageanforderung
Sortieren der Suchergebnisse nach der Rangfolge
Sortieren der Suchergebnisse nach dem Wert verwalteter Eigenschaften
Sortieren der Suchergebnisse nach einem Formelausdruck
Sortieren der Suchergebnisse nach zufälliger Reihenfolge

Gilt für: SharePoint Server 2010

Angeben der Sortierung in einer Abfrageanforderung

Wenn Sie den Abfragewebdienst verwenden, geben Sie Sortierkriterien mit dem "SortByProperties"-Element in "Microsoft.Search.Query"-Schema an. Dieses Element enthält ein oder mehrere SortByProperty-Elemente, die jedes eine Ebene in der Spezifikation für die Sortierung darstellen.

Bei Verwendung des Query-Objektmodells geben Sie die Sortierkriterien mithilfe der SortList-Eigenschaft der KeywordQuery-Klasse an. Diese Eigenschaft gibt eine Auflistung von Sort-Objekten zurück, von denen jedes eine Ebene in der Spezifikation für die Sortierung darstellt.

Wenn in der Spezifikation für die Sortierung mehrere Ebenen vorhanden sind, erfolgt die Sortierung gemäß der in der Spezifikation angegebenen Reihenfolge. Nach der Sortierung basierend auf der ersten Ebene ist die nächste Ebene nur für Ergebnisse relevant, die für die für die erste Ebene angegebenen Sortierkriterien denselben Wert aufweisen.

Sie können für jede Ebene in der Spezifikation für die Sortierung eine eigene Sortierrichtung angeben.

Sortieren der Suchergebnisse nach der Rangfolge

Das Standardsortierverfahren ist das Sortieren der Abfrageergebnisse nach Relevanz (Rang). Das bedeutet, dass in FAST Search Server 2010 for SharePoint die Ergebnisse mit der höchsten Relevanz an erster Stelle im Abfrageergebnissatz platziert werden. Weitere Informationen zur Feinabstimmung der relevanzgesteuerten Reihenfolge finden Sie unter Verbessern der Relevanz für FAST Search Server 2010 for SharePoint.

Wenn Sie ein Rangprofil verwenden möchten, das vom Standardrangprofil abweicht, können Sie den Namen des Rangprofils in der Spezifikation für die Sortierung angeben.

Bei der Sortierung nach Rang werden die Ergebnisse stets in absteigender Reihenfolge sortiert.

Zusätzlich zum Verwenden eines Rangprofils können Sie auch die Rangberechnung in der Abfragezeichenfolge beeinflussen, wozu Sie zwei Möglichkeiten haben:

Sortieren der Suchergebnisse nach dem Wert verwalteter Eigenschaften

Sie können eine Sortierung der Abfrageergebnisse nach dem Wert einer oder mehrerer verwalteter Eigenschaften in den Abfrageergebnissen festlegen. Das bedeutet, dass FAST Search Server 2010 for SharePoint die Sortierung basierend auf allen Ergebnissen ausführt, die den Abfragekriterien entsprechen.

Sie können nach Text- und nach numerischen Eigenschaften sortieren. Für Texteigenschaften basiert die Sortierung auf Standardtextzeichenfolgen. Für numerische Eigenschaften (einschließlich verwaltete Eigenschaften vom Typ Datetime) basiert die Sortierung auf einem numerischen Wert.

Sortieren der Suchergebnisse nach einem Formelausdruck

Sie können für die Sortierung von Abfrageergebnissen eine Spezifikation für die Sortierung angeben, nach der der Sortierungswert anhand einer mathematischen Formel erstellt wird.

Die Sortierung nach Formel ist eine Erweiterung der Sortierfunktion mit einer einzigen Ebene und mit mehreren Ebenen für Abfrageergebnisse. Mit diesem Feature können Sie statt einer verwalteten Eigenschaft eine Formel als Sortierkriterium angeben.

Anhand des Features zum Sortieren nach Formel können Sie mathematische Operationen auf den Wert einer oder mehrerer verwalteter Eigenschaften für jedes Element in den Abfrageergebnissen anwenden.

Im Folgenden einige Beispiele für die Implementierung dieses Features:

  • K-Nearest-Neighbour-Algorithmus zum Klassifizieren von Dokumenten.

  • Euklidischer Abstand oder Manhattan-Distanz zum Berechnen von geografischen Entfernungen.

  • Normwerte, beispielsweise zum Sortieren von Dokumenten auf der Grundlage der Entfernung des Werts einer gegebenen verwalteten Eigenschaft von einem Normwert (einem bevorzugtem Wert).

Dieses Feature bietet nicht die Steuerung von statistischen dynamischen Rangfolgenparametern wie etwa Häufigkeit des Begriffs und Nähe zum Begriff.

Die Formel wird von links nach rechts ausgewertet, wobei die standardmäßige Rangfolge der mathematischen Operatoren angewendet wird. Das bedeutet, Funktionen und eingeklammerte Gruppen werden zuerst ausgewertet, danach Multiplikationen und Divisionen und zuletzt Additionen und Subtraktionen.

Wichtiger HinweisWichtig

Das Endergebnis einer Formel muss im Wertebereich einer 32-Bit-signierten ganzen Zahl liegen. Andernfalls stimmt die Sortierung möglicherweise nicht.

Angeben der Sortierformel in einer Abfrage

Sie geben eine Sortierformel statt einer verwalteten Eigenschaft in der Sortierungsspezifikation der Abfrageanforderung an.

Die Sortierangabe weist folgendes Format auf:

[formula:<sort-formula>]

Bei diesem Format ist <sort-formula> der Sortierformelausdruck.

HinweisHinweis

Die eckigen Klammern sind Teil der Sortierangabesyntax.

Die Standardsortierrichtung ist Descending. Sie müssen ggf. auch eine Formel zum Sortieren nach aufsteigendem Wert angeben, z. B. wenn die Formel eine geografische Entfernung angibt.

Das folgende Beispiel zeigt, wie mithilfe des SortByProperties-Elements im Abfragewebdienst eine Sortierformel mit aufsteigender Sortierreihenfolge angegeben wird.

<SortByProperties>
  <SortByProperty name="[formula:abs(2000-size)]" direction="Ascending" /> 
</SortByProperties>

Weitere Informationen zum Hinzufügen einer Sortierangabe zu einer Abfrage finden Sie unter Angeben der Sortierung in einer Abfrageanforderung.

Verwenden von verwalteten Eigenschaften in der Formel

Sie können eine Sortierformel auf den Wert von verwalteten Eigenschaften vom Typ Integer, Decimal und Datetime anwenden. Dazu müssen Sie die Sortierung für die angegebene verwaltete Eigenschaft im Indexschema aktivieren.

Für verwaltete Eigenschaften vom Typ Decimal wird der Wert mit 10^(Dezimalziffern) multipliziert, bevor er in der Formelauswertung verwendet wird.

Für verwaltete Eigenschaften vom Typ Datetime wird der Wert in die Anzahl von 100 Nanosekunden seit 01. Januar 29000 v. Chr. konvertiert, bevor er in der Formelauswertung verwendet wird. Das Jahr wird mit 366 Tagen angesetzt.

Sortierformelausdrücke

In Tabelle 1 werden die Funktionen aufgeführt, die Sie im Sortierformelausdruck verwenden können. Der Ausdruck darf keine Leerzeichen enthalten.

Tabelle 1. Funktionen für Sortierformelausdrücke

Funktion

Beschreibung

+

Gibt eine Addition an.

-

Gibt eine Subtraktion an.

*

Gibt eine Multiplikation an.

/

Gibt eine Division an.

HinweisHinweis

Eine Division durch null verursacht standardmäßig eine Ausnahme, und die Abfrage wird mit einem Fehler zurückgegeben. Mithilfe des errtolast-Operators können Sie den Fehler bei der Abfrage vermeiden, und die fehlerhaften Elemente stattdessen am Ende des Ergebnissatzes platzieren.

rank

Ein besonderes Schlüsselwort, das den dynamischen Rang eines Elements darstellt.

Beispiel: In abs(rank-100) wird die Entfernung vom Rangwert 100 als Sortierkriterium verwendet.

[0-9.]+

Gibt an, dass Zahlen als Integer- oder als Double-Werte angegeben werden können.

Beispiele: 503, 3.14, 5.4352262

[a-z0-9]+

Gibt an, dass jede Zeichenfolge, die nicht als Funktionsname erkannt wird, als Name einer verwalteten Eigenschaft behandelt wird. Sie müssen die Sortierung für die angegebene verwaltete Eigenschaft im Indexschema (FAST Search Server für SharePoint) aktivieren.

Beispiel: Sie können eine verwaltete Eigenschaft namens height mit aktivierter Sortierung definieren. Dadurch können Sie "height" als Ausdruck in der Formel verwenden. In der Formel wird dann der Wert der verwalteten Eigenschaft height verwendet.

( and )

Dient zum Gruppieren von Berechnungen, sodass die richtige Reihenfolge der Auswertung sichergestellt ist.

Beispiel: 4*(3+2)

sqrt(n)

Die Quadratwurzel von n.

exp(n)

Die Exponentialfunktion, die gleichwertig mit pow(2.71828182846,n) ist.

log(n)

Der natürliche Logarithmus von n.

abs(n)

Der absolute Wert von n.

ceil(n)

Der aufgerundete Wert von n. Das bedeutet, wenn n keine ganze Zahl ist, wird auf die nächste ganze Zahl aufgerundet. Ist n eine ganze Zahl, wird n verwendet.

floor(n)

Der abgerundete Wert von n. Das bedeutet, wenn n keine ganze Zahl ist, wird auf die nächste ganze Zahl abgerundet. Ist n eine ganze Zahl, wird n verwendet.

round(n)

Die Ab- oder Aufrundung von n auf die nächste ganze Zahl. (Wird auch als wissenschaftliches oder symmetrisches Runden bezeichnet.)

sin(n)

Der Sinus von n Radiant.

cos(n)

Der Kosinus von n Radiant.

tan(n)

Der Tangens von n Radiant.

asin(n)

Der Arkussinus von n in Radiant.

acos(n)

Der Arkuskosinus von n in Radiant.

atan(n)

Der Arkustangens von n in Radiant.

pow(x,y)

Der Wert von x hoch y.

atan2(y,x)

Ein zwei Argumente umfassender Arkustangens des Winkels in Radiant zwischen der positiven x-Achse und der angegebenen kartesischen Koordinate (x,y).

bucket(b,n1,n2,…)

Ein Operator, mit dem einzelne Werte für gegebene Werteverteilungsbereiche für einen Ausdruck bereitgestellt werden können.

Der Ausdruck b kann eine verwaltete Eigenschaft oder ein beliebiger anderer Formelausdruck sein. Die Argumente n1, n2, … stellen numerische Grenzwerte dar. Sie können eine beliebige Anzahl von Grenzwerten für den Bucket angeben.

Ein gegebener Wert für den Eingabeausdruck b wird auf den nächsten gegebenen numerischen Grenzwert abgerundet. Liegt der Wert unter dem niedrigsten gegebenen Grenzwert, ist der resultierende Wert null.

errtolast(x)

Ein Operator, mit dem Sie steuern können, wie Formelausnahmen behandelt werden. x kann ein beliebiger Formelausdruck sein. Führt die Berechnung dieses Formelausdrucks zu einer mathematischen Ausnahme für ein Element in dem Ergebnissatz, z. B. eine Division durch null, werden diese Elemente am Ende der Sortierungsliste angezeigt, unabhängig von der angegebenen Sortierrichtung.

Leistungsmerkmale für das Sortieren nach Formel

Wenn Sie eine Sortierformel verwenden, impliziert dies, dass die Formelberechnungen auf alle übereinstimmenden Elemente im Ergebnissatz angewendet werden. Folglich hängt es von der Anzahl der Elemente ab, die den Abfragekriterien entsprechen, welche Abfrageleistung erzielt wird.

Lange Formeln mit zahlreichen Operatoren beanspruchen mehr Verarbeitungszeit als kurze Formeln.

Verwenden von "Sortieren nach Formel" für geografische Entfernungen

Sie können durch Sortieren nach Formel eine Rangfolge basierend auf der Entfernung anwenden. Dazu müssen Sie verwaltete Eigenschaften verwenden, die die geografische Breite und die geografische Länge der einzelnen Elemente darstellen.

Sie können beispielsweise eine der folgenden Standardformeln verwenden:

  • Manhattan-Distanz.

  • Euklidischer Abstand. Siehe Beispiel 2.

  • Haversine-Formel (Semiversus oder halber Sinus versus).

Wichtiger HinweisWichtig

Sie müssen verwaltete Eigenschaften vom Typ Integer für die Werte für die geografische Breite und die geografische Länge verwenden. Was den Inhalt betrifft, können Sie die Werte für die geografische Breite und die geografische Länge in ganzzahlige Werte in einer externen Pipelineerweiterungskomponente konvertieren. Was die Abfrage betrifft, können Sie dieselbe Konvertierung im Abfrageclient ausführen.

Beispiele

Die folgenden Beispiele veranschaulichen das Angeben der Sortierformel in einer Anforderung an den Abfragewebdienst.

Beispiel 1. Die Elemente, deren Wert für die verwaltete Eigenschaft height 20 am nächsten kommt, an den Anfang der Ergebnisliste platzieren.

<SortByProperties>
  <SortByProperty name="[formula:abs(20-height)]" direction="Ascending" />
</SortByProperties>

Beispiel 2. Sortieren nach dem echten dreidimensionalen euklidischen Abstand ausgehend von einer bestimmten Basisposition (z. B. der Position des Benutzers) basierend auf Positionsdaten, die in den verwalteten Eigenschaftenlatitude, longitude und height angegeben werden. Die folgende Formel liefert den dreidimensionalen euklidischen Abstand, sofern die Basisposition 50/100/200 (geografische Breite/geografische Länge/Höhe) lautet:

sqrt(pow(50-latitude,2)+pow(100-longitude,2)+pow(200-height,2))

Wenn Sie mit einer auf der Entfernung basierenden Ergebnissortierung arbeiten möchten (ohne die Entfernung mit anderen Parametern in der Formel zu kombinieren), können Sie die Komponente sqrt() entfernen, da dadurch nicht die Sortierreihenfolge geändert wird. Hierdurch verbessert sich die Abfrageleistung.

<SortByProperties>
  <SortByProperty name="[formula:pow(50-latitude,2)+pow(100-longitude,2)+pow(200-height,2)]"
                  direction="Ascending" />
</SortByProperties>

Beispiel 3. Die Werte von size in Buckets runden, wobei die Werte auf einen der folgenden Werte abgerundet werden: 0, 5, 15, 50, 100. Sortieren Sie anhand der größten Werte zuerst.

<SortByProperties>
  <SortByProperty name="[formula:bucket(size,5,15,50,100)]" direction="Ascending" />
</SortByProperties>

Verwenden einer Sortierung nach Formel im Abfragewebdienst

Befolgen Sie die Anweisungen in Exemplarische Vorgehensweise: Abfragen von FAST Search Server in einer Clientanwendung, und erweitern Sie den Code, indem Sie wie weiter oben in Beispiel 1 beschrieben eine Sortierformel angeben.

Ersetzen Sie die Definition der Zeichenfolge queryXML2, um der Abfrage eine Sortierformelangabe hinzuzufügen.

   // queryXML2 is the part of the XML after the query string.
   string queryXML2 = @"
         </QueryText>
      </Context>
      <ResultProvider>FASTSearch</ResultProvider>
      <Range>
         <Count>10</Count>
      </Range>
      <SortByProperties>
         <SortByProperty name='[formula:abs(20-height)]' direction='Ascending' />
      </SortByProperties>
   </Query>
</QueryPacket>";

Sortieren der Suchergebnisse nach zufälliger Reihenfolge

Sie können das Abfrageergebnis nach dem Zufallsprinzip sortieren oder aber der Ergebnissortierung ein Zufallselement hinzufügen.

Die Spezifikation für die Sortierung nach dem Zufallsprinzip weist folgendes Format auf:

[random:seed=<seed>:hashfield=<managed property>:addtorankmax=<max random value>]

HinweisHinweis

Die eckigen Klammern sind Teil der Sortierangabesyntax.

In Tabelle 2 werden die Parameter für die Spezifikation für die Sortierung nach dem Zufallsprinzip erläutert.

Tabelle 2. Parameter für die Spezifikation für die Sortierung nach dem Zufallsprinzip

Parameter

Beschreibung

Erforderlich

seed

Der Startwert für die Zufallswertgenerierung.

Der Startwert wird für eine Funktion eingegeben, mit der eine Zufallszahl generiert wird. Diese Zufallszahl wird für die endgültige Sortierung verwendet.

Wenn Sie nur die Option seed verwenden, erhalten Sie ein nach dem Zufallsprinzip sortiertes Abfrageresultset. Die Sortierreihenfolge für dieselbe Abfrage (bei Verwendung desselben Startwerts) wird möglicherweise nach einer Indexaktualisierung geändert.

Ja

hashfield

Eine verwaltete Eigenschaft, die als Hashwert für die Zufallsgenerierung verwendet wird.

Mit diesem Parameter können Sie sicherstellen, dass die Sortierreihenfolge für dieselbe Abfrage (bei Verwendung desselben Startwerts) nach einer Indexaktualisierung nicht geändert wird.

Die verwaltete Eigenschaft muss vom Typ Integer sein, und im Indexschema muss die Sortierung aktiviert sein.

Sie können diese verwaltete Eigenschaft mit zufälligen oder eindeutigen Werten auffüllen (z. B. eine Sequenznummer, die durch eine Elementverarbeitungsphase aufgefüllt wird).

Nein

addtorankmax

Verwenden Sie diesen Parameter, wenn Sie eine begrenzte Zufallssortierung des Abfrageergebnisses vornehmen möchten, wobei das Ergebnis weiterhin hauptsächlich nach der Rangfolge sortiert wird.

Ein Zufallswert zwischen 0 (null) und dem für diesen Parameter angegebenen Wert wird dem Rangwert jedes Elements im Resultset hinzugefügt. Dies ermöglicht die Zufallssortierung der Ergebnisse innerhalb eines Intervalls.

HinweisHinweis

Mit dem Abfrageergebnis wird der ursprüngliche (vor der Sortierung) Rangwert bereitgestellt, und nicht der Rang einschließlich des Zufallswerts.

Nein

Durch die Bereitstellung desselben Startwerts für gleichwertige Abfragen werden die Elemente in derselben Reihenfolge dargestellt. Dadurch können Sie beim Blättern in den Suchergebnissen dieselbe zufällige Reihenfolge beibehalten. Verwenden Sie den hashfield-Parameter, um dieselbe zufällige Reihenfolge beizubehalten, wenn versehentlich eine Indexaktualisierung zwischen den Abfragen erfolgt.

Beispiele

Die folgenden Beispiele veranschaulichen das Angeben der Sortierung nach dem Zufallsprinzip in einer Anforderung an den Abfragewebdienst.

Beispiel 1. Zufällige Sortierung des gesamten Resultsets.

<SortByProperties>
  <SortByProperty name="[random:seed=5432]" />
</SortByProperties>

Beispiel 2. Zufällige Sortierung des gesamten Resultsets. Dieselbe zufällige Reihenfolge wird für dieselbe Abfrage mit demselben Startwert beibehalten, selbst wenn der Index geändert wird. Eine benutzerdefinierte verwaltete Eigenschaft hashvalue muss im Indexschema verfügbar sein und mit zufälligen oder sequenziellen numerischen Werten für alle indizierten Elemente aufgefüllt werden.

<SortByProperties>
  <SortByProperty name="[random:seed=6543:hashfield=hashvalue]" />
</SortByProperties>

Beispiel 3. Hinzufügen eines zufälligen Werts zwischen 0 und 200 zum Rangwert für jedes Element. Dadurch wird das Resultset in begrenztem Umfang neu sortiert.

<SortByProperties>
  <SortByProperty name="[random:seed=1234:addtorankmax=200]" />
</SortByProperties>

Siehe auch

Referenz

"SortByProperties"-Element in "Microsoft.Search.Query"-Schema

FASTSearchRuntime

Konzepte

Verbessern der Relevanz für FAST Search Server 2010 for SharePoint

Indexschema (FAST Search Server für SharePoint)

Integrieren einer externen Komponente für die Elementverarbeitung

Exemplarische Vorgehensweise: Abfragen von FAST Search Server in einer Clientanwendung

Weitere Ressourcen

FAST-Abfragesprache (FAST Query Language, FQL)