Vue d'ensemble du modèle objet de requête de la recherche de contenu d'entreprise
La Recherche de contenu d'entreprise dans Microsoft Office SharePoint Server 2007 fournit un nouveau modèle objet de requête que vous pouvez utiliser dans les applications de recherche et les composants WebPart de recherche personnalisés pour exécuter des requêtes sur le service Recherche de contenu d'entreprise.
Le modèle objet de requête est implémenté dans l'espace de noms Microsoft.Office.Server.Search.Query, qui se trouve dans Microsoft.Office.Server.Search.dll.
Utilisation du modèle objet de requête dans des applications de recherche personnalisées
Vous pouvez écrire du code qui utilise le modèle objet de requête à partir de différents types d'applications, notamment :
un composant WebPart de recherche personnalisé, hébergé dans un site SharePoint ;
une application Web ASPX.
Le modèle objet de requête prend en charge les requêtes de recherche de type Référence de la syntaxe SQL de recherche de contenu d'entreprise et de type Référence de syntaxe de mots-clés Recherche de contenu d'entreprise.
Choix entre le modèle objet de requête et le service Web de requête
La Recherche de contenu d'entreprise expose également ses fonctionnalités de recherche via le service Web de requête. À l'instar du modèle objet de requête, le service Web de requête prend également en charge les requêtes en syntaxe SQL, les requêtes en syntaxe de mot clé, ainsi que le renvoi de types de résultats multiples. La considération principale liée au choix entre le modèle objet de requête et le service Web de requête pour les applications personnalisées dépend de l'emplacement de l'application. Si l'application est locale sur le serveur qui exécute la Office SharePoint Server 2007, vous pouvez utiliser le modèle objet de requête. Pour les applications distantes, vous devez utiliser le service Web de requête. Pour plus d'informations sur le service Web de requête, voir Vue d'ensemble du service Web Query de recherche de contenu d'entreprise.
Accès au modèle objet de requête
Pour utiliser le modèle objet de requête, vous devez définir les références aux DLL suivantes :
Microsoft.Office.Server.dll
Microsoft.Office.Server.Search.dll
Microsoft.SharePoint.dll
À propos des classes de requête
L'espace de noms Microsoft.Office.Server.Search.Query comprend trois classes de requête :
Query Cette classe n'est pas destinée à être utilisée directement à partir de votre code, elle est conçue pour représenter l'implémentation de base des classes du modèle objet de requête de la Recherche de contenu d'entreprise. Dans votre code, utilisez les classes FullTextSqlQuery et KeywordQuery.
FullTextSqlQuery Utilisez cette classe pour exécuter des requêtes de recherche en syntaxe SQL.
KeywordQuery Utilisez cette classe pour exécuter des requêtes de recherche en syntaxe de mot clé.
Choix d'une classe de requête pour une application de recherche personnalisée
Pour déterminer la classe appropriée à utiliser pour votre application de recherche personnalisée (FullTextSqlQuery ou KeywordQuery), prenez en compte le degré de complexité des requêtes de recherche que le code de votre application doit prendre en charge.
Si vous pouvez créer les requêtes dont vous avez besoin uniquement à l'aide de la syntaxe de mot clé, vous pouvez utiliser la classe KeywordQuery. Si vous utilisez la syntaxe de mot clé pour vos requêtes de recherche, vous pouvez passer les termes de recherche directement au composant de recherche sans devoir analyser les termes de recherche pour créer la requête. Par conséquent, le processus de construction des requêtes à l'aide de la syntaxe de mot clé est simple.
Toutefois, si vous devez construire des requêtes plus complexes, la syntaxe de mot clé risque de ne pas suffire. Pour ces requêtes, utilisez la classe FullTextSqlQuery. Par exemple, la syntaxe de mot clé ne prend en charge que les correspondances exactes des expressions, mots ou préfixes. Aussi, bien que vous puissiez utiliser la syntaxe de mot clé pour spécifier s'il faut inclure ou exclure un terme de recherche particulier, vous ne pouvez pas construire de groupes complexes de termes inclus et exclus. Pour ce faire, utilisez la classe FullTextSqlQuery.
La liste suivante identifie les éléments de requête supplémentaires pris en charge uniquement par la syntaxe de recherche SQL via la classe FullTextSqlQuery :
FREETEXT()
CONTAINS()
LIKE
ORDER BY
Exécution de la requête de recherche
Le flux d'exécution de la classe KeywordQuery et de la classe FullTextSqlQuery est sensiblement le même. Le constructeur de la classe a trois surcharges ; lors de l'instanciation de la classe, vous devez spécifier l'un des éléments suivants :
collection de sites (en tant qu'instance de la classe SPSite) ;
contexte du fournisseur de services partagés pour le service de recherche (en tant qu'instance de la classe ServerContext) ;
nom d'application du fournisseur de services partagés pour le service de recherche (chaîne avec le GUID du fournisseur de services partagés).
L'exemple de code suivant montre comment utiliser la classe KeywordQuery.
using Microsoft.SharePoint;
...
KeywordQuery qRequest = new KeywordQuery(new SPSite("http://*****");
L'exemple de code suivant montre comment utiliser la classe FullTextSqlQuery.
using Microsoft.Office.Server;
...
FullTextSqlQuery qRequest = new FullTextSqlQuery(ServerContext.Current);
Lecture des résultats de la recherche
La classe ResultTable implémente IDataReader afin que vous puissiez facilement accéder aux lignes de résultat à partir de votre code.
Voici un exemple :
ResultTableCollection resultTables = queryRequest.Execute();
ResultTable relevantResults = resultTables[ResultType.RelevantResults];
DataTable resultsDataTable = new DataTable();
resultsDataTable.Load(relevantResults,LoadOption.OverwriteChanges);
Types de résultats
Les résultats de la recherche renvoyés par la Recherche de contenu d'entreprise sont regroupés en quatre types de résultats différents, comme indiqué dans le tableau suivant.
Nom | Description |
---|---|
RelevantResults |
Jeu de résultats principal, qui contient les résultats de la recherche provenant de l'index de contenu correspondant à la requête. |
HighConfidenceResults |
Jeu de résultats qui contient les résultats les plus fiables. |
SpecialTermResults |
Jeu de résultats qui contient les meilleurs résultats correspondant à la requête. |
DefinitionResults |
Jeu de résultats qui contient les définitions des mots clés correspondant à la requête. |
Ces types de résultats sont définis dans l'énumération ResultType de l'espace de noms Microsoft.Office.Server.Search.Query.
Voir aussi
Autres ressources
Référence de la syntaxe SQL de recherche de contenu d'entreprise
Référence de syntaxe de mots-clés Recherche de contenu d'entreprise
Création de composants WebPart Enterprise Search personnalisés
Vue d'ensemble du service Web Query de recherche de contenu d'entreprise