我正在尝试基于诸如“财务”之类的关键字进行SharePoint搜索,然后根据2种内容类型过滤结果。
我能够基于关键字“ Finance”搜索网站,但无法弄清楚在何处添加过滤器查询。
C#代码:
ClientContext clientContext = new ClientContext("SITE_URL");
clientContext.Credentials = credentials;
KeywordQuery keywordQuery = new KeywordQuery(clientContext)
{
QueryText = "Finance",
RowLimit = 50
};
SearchExecutor searchExecutor = new SearchExecutor(clientContext);
ClientResult<ResultTableCollection> results = searchExecutor.ExecuteQuery(keywordQuery);
clientContext.ExecuteQuery();
Console.WriteLine("Title");
Console.WriteLine("--------------------------------------------------");
foreach (var resultRow in results.Value[0].ResultRows)
{
Console.WriteLine(resultRow["Title"]);
}
从SharePoint页面搜索过滤器:
{searchboxquery} Path:{Site.URL}* (ContentTypeID:0x012002* AND CustomArticleAttachment:null) OR ContentTypeID:0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900242457EFB8B24247815D688C526CD44D000B78192FF0604947A8C72A5A95B15DD5* (contentclass:STS_List OR contentclass:STS_List_DocumentLibrary)
任何建议都值得赞赏。
谢谢
答案 0 :(得分:0)
我不认为CSOM让您在代码中提供过滤器说明,但是您可以创建一个SharePoint search scope(结果源)来预先进行过滤。然后,在您的CSOM中引用该搜索范围。
有关更多信息,请参见this SE thread。