任何人都可以请指出我使用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"://表示页面库

许可以下: CC-BY-SA归因
scroll top