J'essaie d'utiliser FullTextSqlQuery pour trouver une liste de sites sharepoint auxquels un utilisateur a accès. Voici mon code:Quelle est la portée de recherche d'un FullTextSqlQuery
SPFarm farm = SPFarm.Local;
SPWebServiceCollection webServices =
new SPWebServiceCollection(farm);
foreach (SPWebService webService in webServices)
{
foreach (SPWebApplication webApp in webService.WebApplications)
{
using (FullTextSqlQuery fullTextSqlQuery = new
FullTextSqlQuery(ServerContext.GetContext(webApp)))
{
// Do some Initializtion
fullTextSqlQuery.QueryText =
"select title, path from scope() where (contentclass = 'STS_Web' or contentclass = 'STS_Site') order by path";
// execute the query and gather results
}
}
}
Je pensais naturellement le champ de recherche d'un FullTextSqlQuery est défini par l'argument du constructeur, comme une application web serait le champ de recherche dans ce cas:
FullTextSqlQuery fullTextSqlQuery = new FullTextSqlQuery(ServerContext.GetContext(webApp))
Cependant, Pour chaque application Web, la requête renvoie exactement le même résultat, ce qui signifie que webApp n'est pas utilisée comme portée. Alors, comment définir une portée pour une requête?
Merci.
Bonjour Colin, merci pour votre réponse. Je suis nouveau à Sharepoint. Dans mon cas, j'initialise des requêtes à partir de différentes applications Web, mais toutes les requêtes renvoient le même résultat. Cela signifie-t-il que ces applications Web utilisent le même SSP? – Shuo
Oui c'est le cas. Vous pouvez créer de nouveaux SSP si nécessaire, ou simplement définir des étendues dans un seul SSP. – Colin
Alors, que fait le contexte ou le paramètre SPSite du constructeur s'il ne définit pas la portée? –