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

Letzte Änderung: Dienstag, 20. Juli 2010

Gilt für: SharePoint Server 2010

HinweisHinweis

In diesem Kontext sind mit Clientanwendungen Anwendungen gemeint, die den Query-Webservice aufrufen. Dazu gehören Anwendungen wie etwa Microsoft ASP.NET-Webanwendungen oder Windows-Forms-Anwendungen.

Die QueryEx-Webmethode des Webdienstabfragen 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 WebdienstabfragenSharePoint Server-Suche-Ergebnisse an eine Windows-basierte Clientanwendung zurückgeben, indem Sie die QueryEx-Webmethode verwenden. Dies umfasst die folgenden Aufgaben:

  • Einrichten der Clientanwendung

  • Verweisen auf den Webdienstabfrage von der Clientanwendung aus

  • Ändern des Formulars für die Clientanwendung

  • Codieren der Clientanwendung

  • Testen der Clientanwendung

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

  • Microsoft Visual Studio 2010 ist auf dem Entwicklungscomputer installiert.

  • Sie haben die nötigen Berechtigungen zum Zugreifen auf eine SharePoint-Website, die für die Verwendung von SharePoint Server-Suche konfiguriert ist.

So richten Sie die Clientanwendung ein

  1. Zeigen Sie in Visual Studio 2010 im Menü Datei auf Neu, und klicken Sie 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 im Feld Name die Bezeichnung QueryExClientSample ein, und klicken Sie dann auf OK.

Hinzufügen eines Webverweises zum Abfragewebdienst

  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 im Textfeld URL die folgende Adresse ein: http://SERVER/_vti_bin/search.asmx. Ersetzen Sie SERVER durch die URL zu der 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 im 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 (Form1, wenn Sie das Standardformular verwenden).

  2. Erweitern Sie in der 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 queryButton, und geben Sie Abfrage in der Eigenschaft Text ein.

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

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

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

So schreiben Sie den Code für die Clientanwendung

  1. Doppelklicken Sie auf queryButton, 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 dem queryButton_Click-Ereignis folgenden Code hinzu:

    try
    {
    // Instantiate the Web service.
        QueryWebServiceProxy.QueryService queryService = new QueryWebServiceProxy.QueryService();
    // Use the credentials of the user running the client application. 
        queryService.Credentials = System.Net.CredentialCache.DefaultCredentials;
    //Execute the QueryEx method, returning the results to a DataSet
        System.Data.DataSet queryResults = queryService.QueryEx(GetXMLString());
    // Set the DataGridView data source to the first table in the DataSet oject, which contains the relevant results.
        resultsGrid.DataSource = queryResults.Tables[0];
    }
    catch (Exception ex)
    {
        resultsLabel.Text = ex.ToString();
    }
    
  3. Die Zeichenfolge, die an die QueryEx-Methode übergeben wird, wird in der GetXMLString-Funktion konstruiert. Fügen Sie der Form1-Klasse den folgenden Code hinzu, um die GetXMLString-Funktion zu erstellen.

    private string GetXMLString()
    {
    /* 
       The proceeding six lines of code is actually one line of code.
       It is separated into four lines here for readability.
       You will need to remove the line breaks when you copy the code to your project.
    */
       StringBuilder xmlString = new StringBuilder("<QueryPacket xmlns='urn:Microsoft.Search.Query'>
    <Query><SupportedFormats><Format revision='1'> urn:Microsoft.Search.Response.Document:Document
    </Format></SupportedFormats><Context><QueryText language='en-US' type='STRING'>");
        xmlString.Append(queryTextBox.Text);
        xmlString.Append("</QueryText></Context></Query></QueryPacket>");
        return xmlString.ToString();
    }
    

So testen Sie die Anwendung

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

  2. Geben Sie in das Textfeld eine Schlüsselwortabfrage ein. Informationen zum Konstruieren von Schlüsselwortabfragen finden Sie in der Referenz für die Schlüsselwort-Abfragesyntax.

  3. Klicken Sie auf Abfrage, um die Schlüsselwortabfrage an den Abfragewebdienst zu übermitteln. Wenn Ergebnisse zurückgegeben werden, so werden diese im DataGridView-Steuerelement angezeigt.

Siehe auch

Referenz

QueryService

Konzepte

Verwenden des Query-Webdiensts

Erstellen von Suchabfragen

Weitere Ressourcen

Referenz zum Microsoft.Search-Schema