Recherche dans la bibliothèque de pages à l'aide de FullTextSqlQuery
-
09-12-2019 - |
Question
Quelqu'un peut-il m'indiquer la bonne direction pour rechercher dans la bibliothèque Pages à l'aide de FullTextSqlQuery ?J'ai réussi à créer une instance d'un nouveau FullTextSqlQuery et à gérer toutes les propriétés nécessaires.Il récupère très bien les données, mais dans l'état actuel des choses, ma requête est la suivante :
SELECT Titre FROM Portée()
Simplement pour moi de tester ça marche.Comment puis-je affiner cela pour ajouter une clause Where a pour rechercher uniquement la bibliothèque Pages ?
La solution
Si vous interrogez plusieurs collections de sites, utilisez FullTextSQLQuery
puisqu'il effectue une recherche dans toute la batterie de serveurs et si vous envisagez d'interroger la bibliothèque de pages d'une seule collection de sites, utilisez SPSiteDataQuery
plutôt.Je pense que tu pourrais avoir besoin SPSiteDataQuery
?
SPSiteDataQuery queryObj = new SPSiteDataQuery();
//query Pages libraries
queryObj.Lists = "<Lists ServerTemplate='850' />";
queryObj.ViewFields = "<FieldRef Name='Title' /><FieldRef Name='FileRef' />";
queryObj.Webs = "<Webs Scope='Recursive' />";
DataTable dt = SPContext.Current.Web.GetSiteData(query);
foreach (DataRow row in dt.Rows)
{
//do something else
}
P.S. FullTextSqlQuery
Il se peut que les données les plus récentes ne soient pas toujours renvoyées, mais vous pouvez réduire la planification d'analyse incrémentielle à 15 ou 30 minutes.
Mise à jour:
Définissez la propriété QueryText de votre FullTextSQLQuery
objet comme ceci :
fullTextSqlQuery.QueryText =
"select title, ContentClass from scope() where (contentclass = 'STS_List_850')";
"STS_List_850" :// désigne une bibliothèque de pages