Procédure : soumettre une requête de mots-clés à Recherche de contenu d'entreprise depuis une application cliente
Recherche de contenu d'entreprise dans Microsoft Office SharePoint Server 2007 inclut le service Web Query qui expose les fonctionnalités de recherche aux applications clientes.
Notes
Dans ce contexte, l'application cliente fait référence à une application qui appelle le service Web Query. Cela peut concerner les applications Web Microsoft ASP.NET, les applications Windows Forms, etc.
La méthode Web QueryEx du service Web Query envoie une requête au service de recherche et retourne les résultats dans un objet System.Data.DataSet. La procédure suivante illustre l'utilisation du service Web de requêtes Recherche de contenu d'entreprise Query pour renvoyer les résultats de la recherche à une application Windows cliente au moyen de la méthode Web QueryEx. Elle porte sur les tâches suivantes :
Configuration de l'application cliente
Modification du formulaire pour l'application cliente
Écriture du code
Pour appliquer cette procédure, vérifiez les points suivants :
Microsoft Visual Studio 2005 est installé sur votre ordinateur de développement.
Vous êtes autorisé à accéder à un site SharePoint configuré pour utiliser Recherche de contenu d'entreprise.
Configurer l'application Windows cliente
Dans Visual Studio 2005, dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet.
Dans Types de projets, sous C#, sélectionnez Windows.
Sous Modèles, sélectionnez Application Windows. Dans le champ Nom, tapez QueryExClientSample, puis cliquez sur OK.
Créez une classe proxy pour le service Web. Pour cela, procédez de l'une des façons suivantes :
Si vous travaillez dans Visual Studio 2005, suivez les étapes de la section Procédure : créer une classe proxy de service Web pour le service Web Query de recherche de contenu d'entreprise dans Visual Studio 2005.
Utilisez l'Outil WSDL (Web Services Description Language) (Wsdl.exe) et suivez les étapes décrites à la section Création d'un proxy de service Web XML , puis ajoutez une référence pour la classe proxy au projet de l'application cliente.
Modifier le formulaire par défaut de l'application cliente
Dans l'Explorateur de solutions, double-cliquez sur le formulaire (Form1 si vous utilisez le formulaire par défaut).
Dans la boîte à outils, cliquez sur Button, faites glisser ce contrôle vers votre formulaire. Dans Propriétés, remplacez (Name) par cmdQuery.
Dans la boîte à outils, cliquez sur TextBox, puis faites glisser ce contrôle vers votre formulaire. Dans Propriétés, remplacez (Name) par txtQuery et affectez à Multiligne la valeur True.
Dans la boîte à outils, cliquez sur DataGridView, puis faites glisser ce contrôle vers votre formulaire. Dans Propriétés, remplacez (Name) par grdResults.
Dans la boîte à outils, cliquez sur Label, puis faites glisser ce contrôle vers votre formulaire. Dans Propriétés, remplacez (Name) par lblResults, puis supprimez le contenu de la propriété Text.
Écrire le code pour l'application cliente
Double-cliquez sur cmdQuery pour ajouter un gestionnaire d'événements pour l'événement Click. L'Éditeur de code s'ouvre et le curseur est placé dans le gestionnaire d'événements.
Ajoutez les instructions suivantes pour les espaces de noms en haut du code dans clsSearchQuery.cs.
using System.Drawing; using System.Data; using System.Xml; using System.Xml.Serialization; using Microsoft.SharePoint.WebPartPages; using Microsoft.Office.Server; using Microsoft.Office.Server.Search.Query;
Dans la ligne de code qui suit, remplacez WebControl par WebPart.
public class clsSearchQuery : WebControl
Ajoutez la ligne de code au-dessus de la déclaration de classe pour clsSearchQuery.
[XmlRoot(Namespace = "CustomSearchWebPart")]
Exemple
//The string containing the keyword to use in the search
string keywordString = "Microsoft";
//The XML string containing the query request information
//for the Web service
string qXMLString = "<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'>"+
keywordString + "</QueryText></Context></Query></QueryPacket>";
QueryWebServiceProxy.QueryService queryService = new QueryWebServiceProxy.QueryService();
queryService.Credentials = System.Net.CredentialCache.DefaultCredentials;
System.Data.DataSet queryResults = queryService.QueryEx(qXMLString);
resultsGridView.DataSource = queryResults .Tables[0];
Voir aussi
Autres ressources
Vue d'ensemble du service Web Query de recherche de contenu d'entreprise
Procédure : créer une classe proxy de service Web pour le service Web Query de recherche de contenu d'entreprise dans Visual Studio 2005
Référence du schéma Microsoft.Search pour la recherche de contenu d'entreprise
Référence de syntaxe de mots-clés Recherche de contenu d'entreprise