Freigeben über


Exemplarische Vorgehensweise: Abfragen von FAST Search Server in einer Clientanwendung

Der Abfragewebdienst stellt die SharePoint-Unternehmenssuche-Funktionen in Microsoft SharePoint Server 2010 Clientanwendungen zur Verfügung.

Letzte Änderung: Donnerstag, 1. September 2011

HinweisHinweis

Inhalt dieses Artikels
Voraussetzungen
Schritt 1. Einrichten und Konfigurieren der formularbasierten Clientanwendung
Schritt 2. Schreiben des Codes für die Clientanwendung
Schritt 3. Testen der Clientanwendung
In diesem Kontext sind mit Clientanwendungen Anwendungen gemeint, die den Abfragewebdienst aufrufen. Dazu gehören Anwendungen wie etwa Microsoft ASP.NET-Webanwendungen oder Windows Forms-Anwendungen.

Die QueryEx-Webmethode des Abfragewebdiensts sendet eine Abfrage an den Suchdienst und gibt die Ergebnisse in einem DataSet-Objekt zurück. In der folgenden exemplarischen Vorgehensweise wird beschrieben, wie Sie mithilfe des Abfragewebdiensts FAST Search Server 2010 for SharePoint-Ergebnisse an eine Windows-basierte Clientanwendung zurückgeben, indem Sie die QueryEx-Webmethode verwenden. Dies umfasst die folgenden Aufgaben:

Diese exemplarische Vorgehensweise ist eine Erweiterung von Exemplarische Vorgehensweise: Ausführen einer Abfrage in der SharePoint-Suche von einer Clientanwendung aus. Das Visual Studio 2010-Projekt fügt ein DataGridView-Steuerelement hinzu, und im Codebeispiel wird die FQL-Abfragesyntax (FAST Query Language ) verwendet.

Gilt für: SharePoint Server 2010

Voraussetzungen

Folgende Voraussetzungen müssen erfüllt sein, damit Sie diese exemplarische Vorgehensweise befolgen können:

  • Microsoft Visual Studio 2010 ist auf dem Entwicklungscomputer installiert.

  • Sie haben die nötigen Berechtigungen für den Zugriff auf eine SharePoint Server 2010-Website, die für die Verwendung von FAST Search Server 2010 for SharePoint konfiguriert ist.

Schritt 1. Einrichten und Konfigurieren der formularbasierten Clientanwendung

Sie richten eine formularbasierte Anwendung in Visual Studio 2010 ein, welche die folgenden Elemente umfasst:

  • Ein Textfeld für die Abfrageeingabe.

  • Eine Abfrageschaltfläche.

  • Ein DataGridView-Steuerelement für die Abfrageergebnistabelle.

  • Ein DataGridView-Steuerelement für weitere Abfrageergebnistabellen. Das Steuerelement wird nicht im Codebeispiel in diesem Artikel, aber in anderen Artikeln verwendet, z. B. in Einschränkung von Abfragen (FAST Search Server 2010 for SharePoint).

So richten Sie das Visual Studio-Projekt ein

  1. Zeigen Sie in Visual Studio 2010 im Menü Datei auf Neu, und klicken Sie dann auf Projekt.

  2. Erweitern Sie unter Installierte Vorlagen den Knoten Visual C#, und klicken Sie dann auf Windows.

  3. Wählen Sie Windows Forms-Anwendung aus. Geben Sie in das Feld Name die Bezeichnung QueryExClientSample ein, und klicken Sie dann auf OK.

So fügen Sie dem Abfragewebdienst einen Webverweis hinzu

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und klicken Sie dann auf Dienstverweis hinzufügen.

  2. Klicken Sie im Dialogfeld Dienstverweis hinzufügen auf Erweitert.

  3. Klicken Sie im Dialogfeld Dienstverweiseinstellungen auf Webverweis hinzufügen.

  4. Geben Sie im Dialogfeld Webverweis hinzufügen in das Textfeld URL die folgende Adresse ein: http://SERVER/_vti_bin/search.asmx. Ersetzen Sie SERVER durch die URL zur SharePoint-Website, und klicken Sie dann auf Weiter.

  5. Wenn der Webdienst gefunden wurde, wird die Seite für den QueryService-Webdienst im Hauptfenster des Dialogfelds Webverweis hinzufügen angezeigt. Geben Sie QueryWebServiceProxy in das Feld Webverweisname ein, und klicken Sie dann auf Verweis hinzufügen.

So ändern Sie das Standardformular für die Clientanwendung

  1. Doppelklicken Sie im Projektmappen-Explorer auf das Formular (Formular1, wenn Sie das Standardformular verwenden).

  2. Fügen Sie eine Abfrageschaltfläche hinzu:

    Erweitern Sie in Toolbox den Eintrag Standardsteuerelemente, klicken Sie auf Schaltfläche, und ziehen Sie dann das Steuerelement auf das Formular. Ändern Sie unter Eigenschaften den Eintrag (Name) in Abfrageschaltfläche, und geben Sie Abfrage in die Eigenschaft Text ein.

  3. Fügen Sie ein Abfrageeingabefeld hinzu:

    Klicken Sie in Toolbox auf TextBox, und ziehen Sie das Steuerelement auf das Formular. Ändern Sie unter Eigenschaften den Eintrag (Name) in Abfragetextfeld, und legen Sie Mehrzeilig auf Wahr fest.

  4. Fügen Sie ein DataGridView-Steuerelement für die Abfrageergebnistabelle hinzu:

    Erweitern Sie in Toolbox den Eintrag Daten, klicken Sie auf DataGridView, und ziehen Sie das Steuerelement auf das Formular. Ändern Sie unter Eigenschaften den Eintrag (Name) in Ergebnistabelle.

  5. Fügen Sie ein zweites DataGridView-Steuerelement für weitere Abfrageergebnistabellen hinzu:

    Erweitern Sie in Toolbox den Eintrag Daten, klicken Sie auf DataGridView, und ziehen Sie das Steuerelement auf das Formular. Ändern Sie unter Eigenschaften den Eintrag (Name) in Zweite Tabelle.

  6. Fügen Sie ein Steuerelement vom Typ Bezeichnungfür Fehlermeldungen hinzu:

    Klicken Sie in Toolbox auf Bezeichnung, und ziehen Sie das Steuerelement auf das Formular. Ändern Sie unter Eigenschaften den Eintrag (Name) in Ergebnisbezeichnung, und löschen Sie dann den Inhalt der Text-Eigenschaft.

Schritt 2. Schreiben des Codes für die Clientanwendung

Der Code implementiert einen Abfragehandler, der der konfigurierten Abfrageschaltfläche zugeordnet ist. Der Code führt die folgenden Aufgaben aus:

  • Einrichten der Verbindung des Abfragewebdiensts

  • Erstellen des XML-Codes der Abfrage

  • Verpacken der vom Benutzer eingegebenen Abfrage in einem FQL-Operator vom Typ STRING

  • Ausführen der Abfrage mithilfe der QueryEx-Methode des Abfragewebdiensts

  • Anzeigen der Ergebnisse im ersten DataGridView-Steuerelement

  • Ausgeben der erweiterten Eigenschaften für das Abfrageergebnis im Meldungsfeld-Steuerelement

So schreiben Sie den Code für die Clientanwendung

  1. Doppelklicken Sie auf die Abfrageschaltfläche, um einen Ereignishandler für das Click-Ereignis hinzuzufügen. Der Code-Editor wird geöffnet, wobei sich der Cursor im queryButton_Click-Ereignishandler befindet.

  2. Fügen Sie den folgenden Namespaceverweis hinzu.

    using System.Collections;
    
  3. Fügen Sie dem queryButton_Click-Ereignis folgenden Code hinzu:

    try
    {
       // Instantiate the Query Web service.
       QueryWebServiceProxy.QueryService queryService = new QueryWebServiceProxy.QueryService();
       // Use the credentials of the user running the client application: 
       queryService.Credentials = System.Net.CredentialCache.DefaultCredentials;
       // Run the QueryEx method, returning the results to a DataSet:
       System.Data.DataSet queryResults = queryService.QueryEx(GetXMLString());
       // Set the first DataGridView data source to the RelevantResults table in the DataSet object:
       resultsGrid.DataSource = queryResults.Tables["RelevantResults"];
    
       // Print extended properties for the result set in a message box.
       StringBuilder props = new StringBuilder("Extended properties on result object:\n");
       foreach (DictionaryEntry de in queryResults.ExtendedProperties)
       {
          props.AppendFormat("{0}: {1}\n", de.Key, de.Value);
       }
       props.Append("\nExtended properties on RelevantResults:\n"); 
       foreach (DictionaryEntry de in queryResults.Tables["relevantresults"].ExtendedProperties)
       {
          props.AppendFormat("{0}: {1}\n", de.Key, de.Value);
       }
       MessageBox.Show(props.ToString());
     }
    catch (Exception ex)
    {
       resultsLabel.Text = ex.ToString();
    }
    
  4. Die an die QueryEx-Methode übergebene XML-Abfragezeichenfolge wird in der GetXMLString-Funktion konstruiert.

    Fügen Sie der Form1-Klasse den folgenden Code hinzu, um die GetXMLString-Funktion zu erstellen.

    // Build the query XML string.
    private string GetXMLString()
    {
       // queryXML1 is the part of the XML before the query string.
       string queryXML1 = @"<QueryPacket xmlns='urn:Microsoft.Search.Query'>
       <Query>
          <SupportedFormats>
             <Format revision='1'> urn:Microsoft.Search.Response.Document:Document</Format>
          </SupportedFormats>
          <Context>
             <QueryText language='en' type='FQL'>";
    
       // queryXML2 is the part of the XML after the query string.
       string queryXML2 = @"
             </QueryText>
          </Context>
          <ResultProvider>FASTSearch</ResultProvider>
          <Range>
             <Count>10</Count>
          </Range>
       </Query>
    </QueryPacket>";
    
    // Build the Query XML string.
       StringBuilder xmlString = new StringBuilder(queryXML1); 
       xmlString.Append(GetFQLString());
       xmlString.Append(queryXML2);
       return xmlString.ToString();
    }
    
    // Build the FQL query string.
    // string("<user-typed query>", mode="and")
    private string GetFQLString()
    {
       StringBuilder fqlString = new StringBuilder("string(\"");
       fqlString.Append(queryTextBox.Text);
       fqlString.Append("\", mode=\"and\")");
       return fqlString.ToString();
    }
    

Schritt 3. Testen der Clientanwendung

Sie testen die Clientanwendung, indem Sie einen oder mehrere Abfragebegriffe in das Abfragefeld eingeben. Die Abfrage stellt eine Verbindung der eingegebenen Begriffe mit AND dar.

So testen Sie die Clientanwendung

  1. Drücken Sie F5, um die Clientanwendung zu erstellen und auszuführen.

  2. Geben Sie ein oder mehrere Wörter in das Textfeld ein.

  3. Klicken Sie auf Abfrage, um die Abfrage an den Abfragewebdienst zu übermitteln. Wenn Ergebnisse zurückgegeben werden, so werden diese im DataGridView-Steuerelement angezeigt. Die erweiterten Eigenschaften werden im Popupfenster Meldungsfeld angezeigt.

Siehe auch

Referenz

QueryService

Konzepte

Verwenden des Query-Webdiensts

Exemplarische Vorgehensweise: Ausführen einer Abfrage in der SharePoint-Suche von einer Clientanwendung aus

Referenz zur FAST Query Language-Syntax (FQL)

Erstellen von Suchabfragen

Weitere Ressourcen

Referenz zum Microsoft.Search-Schema