我正在尝试使用FullTextSqlQuery来查找用户有权访问的sharepoint站点列表。这是我的代码:
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
}
}
}
我自然认为FullTextSqlQuery的搜索范围是由构造函数的参数定义的,因为在这种情况下Web应用程序将是搜索范围:
FullTextSqlQuery fullTextSqlQuery = new
FullTextSqlQuery(ServerContext.GetContext(webApp))
但是,对于每个Web应用程序,查询返回完全相同的结果,这意味着webApp不用作范围。那么我如何定义查询的范围?
感谢。
答案 0 :(得分:1)
在您的网络应用使用的共享服务提供商中定义范围(开箱即用或自定义)。在yoru站点的网站集设置中,您可以进一步指定允许和使用的范围。
共享服务提供商位于中央管理员的左侧菜单中,然后,在ssp管理站点中,您可以添加,修改和删除搜索范围。
更多信息here。