Procédure pas à pas : Interrogation de FAST Search Server à partir d’une application cliente
Le service Web de requête expose les fonctionnalités de la Recherche de contenu d’entreprise SharePoint dans Microsoft SharePoint Server 2010 aux applications clientes.
Dernière modification : jeudi 1 septembre 2011
Notes
Dans cet article
Conditions préalables
Étape 1 : Installer et configurer l’application cliente basée sur les formulaires
Étape 2 : Écrire le code pour l’application cliente
Étape 3 : Tester l’application cliente
Dans ce contexte, les applications clientes font référence aux applications qui appellent le service Web de requête. Il peut s’agir d’applications telles que les applications Web Microsoft ASP.NET ou les applications Windows Forms.
La méthode Web QueryEx du service Web de requête envoie une requête au service de recherche et retourne les résultats dans un objet DataSet. La procédure pas à pas suivante explique comment utiliser le service Web de requête pour retourner les résultats de la FAST Search Server 2010 for SharePoint à une application cliente Windows en utilisant la méthode Web QueryEx et comprend les tâches suivantes :
Cette procédure pas à pas est une extension de Procédure pas à pas : interrogation de la Recherche SharePoint à partir d’une application cliente. Le projet Visual Studio 2010 ajoute un second contrôle DataGridView et l’exemple de code utilise la syntaxe de requête FQL (FAST Query Language).
S’applique à : SharePoint Server 2010
Conditions préalables
Pour effectuer cette procédure pas à pas, vérifiez les points suivants :
Microsoft Visual Studio 2010 est installé sur votre ordinateur de développement ;
vous êtes habilité à accéder à un site SharePoint Server 2010 configuré de manière à utiliser FAST Search Server 2010 for SharePoint.
Étape 1 : Installer et configurer l’application cliente basée sur les formulaires
L’installation d’une application cliente basée sur les formulaires s’effectue dans Visual Studio 2010, avec les éléments suivants :
une zone de texte pour l’entrée de la requête ;
un bouton de requête ;
un contrôle DataGridView pour la table de résultats de requête ;
un contrôle DataGridView pour les tables de résultats de requêtes supplémentaires. Le contrôle n’est pas utilisé dans l’exemple de code de cet article, mais il l’est dans d’autres articles tels que Affinement de requête (FAST Search Server 2010 for SharePoint).
Pour configurer le projet Visual Studio
Dans Visual Studio 2010, dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet.
Sous Modèles installés, développez Visual C#, puis cliquez sur Windows.
Sélectionnez Application Windows Forms. Dans le champ Nom, tapez QueryExClientSample, puis cliquez sur OK.
Pour ajouter une référence Web au service Web de requête
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nom de votre projet, puis cliquez sur Ajouter une référence de service.
Dans la boîte de dialogue Ajouter une référence de service, cliquez sur Avancé.
Dans la boîte de dialogue Paramètres de référence de service, cliquez sur Ajouter une référence Web.
Dans la boîte de dialogue Ajouter une référence Web, dans le champ texte URL, tapez l’adresse suivante : http://serveur/_vti_bin/search.asmx. Remplacez serveur par l’URL du site SharePoint, puis cliquez sur Aller à.
Lorsque le service Web est localisé, la page du service Web QueryService apparaît dans la fenêtre principale de la boîte de dialogue Ajouter une référence Web. Tapez QueryWebServiceProxy dans le champ Nom de la référence Web, puis cliquez sur Ajouter une référence.
Pour modifier le formulaire par défaut pour l’application cliente
Dans l’Explorateur de solutions, double-cliquez sur le formulaire (Form1 si vous utilisez le formulaire par défaut).
Ajoutez un bouton de requête :
Dans la Boîte à outils, développez Contrôles communs, cliquez sur Bouton, puis faites glisser le contrôle sur votre formulaire. Dans Propriétés, attribuez au paramètre (Nom) la valeur queryButton, puis tapez Query dans la propriété Texte.
Ajoutez une zone d’entrée de requête :
Dans la Boîte à outils, cliquez sur ZoneTexte, puis faites glisser le contrôle sur votre formulaire. Dans Propriétés, attribuez au paramètre (Nom) la valeur queryTextBox, puis affectez la valeur True à Multiligne.
Ajoutez un contrôle DataGridView pour la table de résultats de requête :
Dans la Boîte à outils, développez Données, cliquez sur DataGridView, puis faites glisser le contrôle sur votre formulaire. Dans Propriétés, attribuez au paramètre (Nom) la valeur resultsGrid.
Ajoutez un second contrôle DataGridView pour les tables de résultats de requêtes supplémentaires :
Dans la Boîte à outils, développez Données, cliquez sur DataGridView, puis faites glisser le contrôle sur votre formulaire. Dans Propriétés, attribuez au paramètre (Nom) la valeur secondGrid.
Ajoutez un contrôle Étiquette pour les messages d’erreur :
Dans la Boîte à outils, cliquez sur Étiquette, puis faites glisser le contrôle sur votre formulaire. Dans Propriétés, attribuez au paramètre (Nom) la valeur resultsLabel, puis supprimez le contenu de la propriété Texte.
Étape 2 : Écrire le code pour l’application cliente
Le code implémente un gestionnaire de requête associé au queryButton que vous avez configuré. Il effectue les tâches suivantes :
configuration de la connexion au service Web de requête ;
création du XML de requête ;
empaquetage de la requête entrée par l’utilisateur dans un opérateur STRING FQL ;
exécution de la requête à l’aide de la méthode du service Web de requête QueryEx ;
affichage des résultats de requête dans le premier contrôle DataGridView ;
impression des propriétés étendues pour le résultat de requête dans le contrôle ZoneMessage.
Pour écrire le code pour l’application cliente
Double-cliquez sur le bouton de requête pour ajouter un gestionnaire d’événements pour l’événement Click. L’éditeur de code s’ouvre, avec le curseur placé dans le gestionnaire d’événements queryButton_Click.
Ajoutez la référence d’espace de noms suivante.
using System.Collections;
Ajoutez le code suivant à l’événement queryButton_Click.
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(); }
On construit la chaîne XML de requête passée à la méthode QueryEx dans la fonction GetXMLString.
Ajoutez le code suivant à la classe Form1 pour créer la fonction GetXMLString.
// 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(); }
Étape 3 : Tester l’application cliente
On teste l’application cliente en tapant un ou plusieurs termes de requête dans la zone de requête. La requête représente une opération AND des termes que vous avez tapés.
Pour tester l’application cliente
Appuyez sur F5 pour générer et exécuter l’application cliente.
Tapez un ou plusieurs mots dans la zone de texte.
Cliquez sur Requête pour envoyer la requête au service Web de requête. Si des résultats sont renvoyés, ils apparaissent dans le premier contrôle DataGridView. Les propriétés étendues sont affichées dans la fenêtre contextuelle ZoneMessage.
Voir aussi
Référence
QueryService
Concepts
Utilisation du service Web Query
Procédure pas à pas : interrogation de la Recherche SharePoint à partir d’une application cliente
Référence de la syntaxe du langage de requête FQL (FAST Query Language)
Génération de requêtes de recherche