Verwenden von Einschränkungen im Abfragewebdienst
Hier erfahren Sie, wie Sie die Einschränkung von Abfragen von FAST Search Server 2010 for SharePoint im Abfragewebdienst einsetzen können.
Letzte Änderung: Mittwoch, 5. Oktober 2011
In diesem Artikel wird beschrieben, wie Sie die Einschränkung von Abfragen von FAST Search Server 2010 for SharePoint wie folgt im Abfragewebdienst einsetzen können:
Inhalt dieses Artikels
Angeben von Einschränkungen im XML-Code der Abfrage
Einschränkungsdaten im Abfrageergebnis
Erstellen einer eingeschränkten Abfrage
Visual Studio-Beispiel zur Einschränkung von Abfragen
Gilt für: SharePoint Server 2010
Angeben von Einschränkungen im XML-Code der Abfrage
Der Abfragewebdienst gibt mit dem Refiner-Element im Microsoft.Search.Query-Schema an, welche Einschränkungen im Abfrageergebnis zurückgegeben werden sollen.
Dieses Element enthält den Namen der Einschränkung. Sie können jedoch auch eine erweiterte Syntax zum Anwenden nicht standardmäßiger Konfigurationswerte für die benannte Einschränkung verwenden. Weitere Informationen zur erweiterten Syntax für das Refiner-Element finden Sie unter Einschränkungsspezifikation im Abfragewebdienst und "Query"-Objektmodell.
Das folgende Beispiel zeigt den XML-Code der Abfrage, der drei Einschränkungen anfordert.
<IncludeRefinementResults>
<Refiners>
<Refiner>author</Refiner>
<Refiner>write(discretize=manual/2010-01-01/2010-08-22/2010-09-15/2010-09-21/2010-09-22)</Refiner>
<Refiner>companies</Refiner>
</Refiners>
</IncludeRefinementResults>
Die Einschränkung write stellt das letzte Änderungsdatum des Elements dar und gibt mithilfe der erweiterten Syntax Datum-/Uhrzeit-Container fester Größe zurück.
Einschränkungsdaten im Abfrageergebnis
Wenn Sie die Abfrageeinschränkung für eine verwaltete Eigenschaft in Ihrer Abfrage aktiviert haben, enthält das Abfrageergebnis Einschränkungscontainerdaten. Ein Einschränkungscontainer stellt einen bestimmten Wert oder Wertbereich für die verwaltete Eigenschaft dar. In einer Benutzeroberfläche für die Suche werden Sie die Einschränkungscontainer in der Regel als Optionen zurAbfrageeinschränkung präsentieren.
Bei Verwenden der QueryEx-Methode des Abfragewebdiensts enthält die zurückgegebene Datenmenge die Tabelle RefinementResults. Die Tabelle enthält pro Einschränkungscontainer eine Zeile sowie Spalten gemäß den Angaben in Tabelle 1.
Tabelle 1. Für Einschränkungscontainer zurückgegebene Daten
Parameter |
Beschreibung |
---|---|
RefinerName |
Der Name der Abfrageeinschränkung (in Kleinschreibung) entsprechend dem Namen der verwalteten Eigenschaft. |
RefinementName |
Eine anzeigbare Zeichenfolgendarstellung der Einschränkung, die diesen Einschränkungscontainer darstellt. Diese Zeichenfolge wird typischerweise verwendet, wenn die Einschränkungsoptionen den Benutzern auf einer Abfrageergebnisseite präsentiert werden. |
RefinementValue |
Eine implementierungsspezifische, formatierte Zeichenfolgendarstellung der Einschränkung. Diese Daten werden zu Debuggingzwecken zurückgegeben und vom Client normalerweise nicht benötigt. |
RefinementToken |
Eine Base-64-codierte Zeichenfolge, die diesen Einschränkungscontainer darstellt, wenn Sie eine eingeschränkte Abfrage ausführen. Dies ist der Wert, der dabei an die FAST Search Server 2010 for SharePoint-Farm übergeben wird. |
RefinementCount |
Die Ergebniszahl für diesen Einschränkungscontainer. Dies ist die Anzahl der Elemente im Abfrageergebnis, die für die gegebene verwaltete Eigenschaft einen Wert haben, der in diesen Einschränkungscontainer fällt. |
Erstellen einer eingeschränkten Abfrage
Eine eingeschränkte Abfrage ist eine Abfrage, die auf Grundlage einer vom Benutzer ausgewählten Einschränkungsoption erstellt wird, z. B. um die Abfrage auf einen bestimmten Datumsbereich zu beschränken.
Ein Abfrageergebnis stellt Einschränkungsoptionen typischerweise in Form von Zeichenfolgenwerten oder -wertebereichen dar. Jeder Zeichenfolgen- oder numerische Wertebereich wird als Einschränkungscontainer bezeichnet. Für jeden Einschränkungscontainer ist ein zugehöriger RefinementToken-Wert vorhanden, den Sie in der eingeschränkten Abfrage verwenden.
Das folgende Beispiel zeigt den XML-Code der Abfrage mit einer Einschränkung.
<RefinementFilters>
<RefinementFilter>AQVmaXhlZA90ZWxzdHJha2V5d29yZHMBAV4BJA==</RefinementFilter>
</RefinementFilters>
Das RefinementFilter-Element stellt einen Einschränkungscontainer dar. Die resultierende Abfrage ist auf Elemente beschränkt, bei denen die zugeordnete verwaltete Eigenschaft einen Wert im Einschränkungscontainer aufweist.
Im RefinementFilters-Element können Sie mehrere Einschränkungscontainer hinzufügen. In diesem Fall ist die resultierende Abfrage auf Elemente beschränkt, bei denen die zugeordnete verwaltete Eigenschaft einen Wert in allen Einschränkungscontainern aufweist. Auf diese Weise können Sie eine Einschränkung auf mehrwertige Eigenschaften anwenden. Beispielsweise können Sie die Abfrage auf Elemente einschränken, die zwei Autoren aufweisen (jeweils repräsentiert durch einen Einschränkungscontainer), aber Elemente ausschließen, die nur einen der Autoren enthalten.
Das folgende Beispiel zeigt den XML-Code der Abfrage mit einer Einschränkung, die zwei Einschränkungscontainer aufweist.
<RefinementFilters>
<RefinementFilter>AQVmaXhlZA90ZWxzdHJha2V5d29yZHMBAV4BJA==</RefinementFilter>
<RefinementFilter>AQZidW5kbGUPdGVsc3RyYWtleXdvcmRzAQFeASQ=</RefinementFilter>
</RefinementFilters>
Visual Studio-Beispiel zur Einschränkung von Abfragen
Die folgenden Schritte sind eine Erweiterung von Exemplarische Vorgehensweise: Abfragen von FAST Search Server in einer Clientanwendung. Befolgen Sie die Schritte in diesem Artikel, und erweitern Sie den Code wie nachfolgend beschrieben.
Die Codeerweiterungen sind wie folgt:
Anfordern von drei Einschränkungen im Abfrageergebnis ("author", "write" und "company"). Dies entspricht dem Beispiel in Angeben von Einschränkungen im XML-Code der Abfrage.
Ausgeben von Abfrageeinschränkungsdaten im zweiten DataGridView-Steuerelement
So erweitern Sie den Code der Visual Studio-Clientanwendung
Ersetzen Sie die Definition der Zeichenfolge "queryXML2", um dem Resultset drei Abfrageeinschränkungen 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> <IncludeRefinementResults> <Refiners> <Refiner>author</Refiner> <Refiner>write(discretize=manual/2010-01-01/2010-08-22/2010-09-15/2010-09-21/2010-09-22)</Refiner> <Refiner>companies</Refiner> </Refiners> </IncludeRefinementResults> </Query> </QueryPacket>";
Fügen Sie dem queryButton_Click-Ereignis folgende Codezeile hinzu:
// Set the second DataGridView data source to the RefinementResults table in the DataSet object: secondGrid.DataSource = queryResults.Tables["RefinementResults"];
Siehe auch
Referenz
Refiner-Element im Microsoft.Search.Query-Schema
Konzepte
Indexschema (FAST Search Server für SharePoint)
Exemplarische Vorgehensweise: Abfragen von FAST Search Server in einer Clientanwendung