使用FullTextSqlQuery搜索页面库
-
09-12-2019 - |
题
任何人都可以请指出我使用FullTextSqlQuery搜索Pages库的正确方向吗?我已经成功地实例化了一个新的FullTextSqlQuery,并且已经处理了所有必要的属性。它可以很好地检索数据,但就目前而言,我的查询是:
从范围中选择标题()
只是为了让我测试它的工作。如何优化它以添加where a子句以仅搜索页面库?
解决方案
如果要查询多个网站集,请使用 FullTextSQLQuery
由于它在服务器场中进行搜索,并且如果您计划查询单个网站集的页面库,请使用 SPSiteDataQuery
相反。我想你可能需要 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
}
附: FullTextSqlQuery
可能并不总是返回最新的数据,但您可以将增量爬网计划减少到15分钟或30分钟。
更新资料:
设置您的QueryText属性 FullTextSQLQuery
像这样的对象:
fullTextSqlQuery.QueryText =
"select title, ContentClass from scope() where (contentclass = 'STS_List_850')";
"STS_List_850"://表示页面库