我需要一个控制台应用程序,我需要通过传递一组单词来搜索Converation结果源(Sharepoint 2013)并将内容记录在表格中。
要求:C#for sharepoint 2013中的控制台应用程序,每天运行,传递带有单词的查询字符串,例如:microsoft; sharepoint等。此查询字符串应搜索结果源(仅用于对话),因为我们需要监视团队网站,mysite和coimmunity网站上的内容。然后应该把它放在桌子上,并附上具有一套单词的细节。
请让我知道相同的API。
答案 0 :(得分:0)
到目前为止,我发现了两种方式,我有类似的情况: 1. CSOM,但您需要先获取结果源ID并将其放入查询中: var keywordQuery = new KeywordQuery(clientContext);
keywordQuery.SourceId = new Guid(ConfigurationManager.AppSettings["ResultSourceId"]);
keywordQuery.QueryText = q;
keywordQuery.RowLimit = 10;
keywordQuery.Culture = int.Parse(ConfigurationManager.AppSettings["LCID"]);
var searchExec = new SearchExecutor(clientContext);
//var Results = searchExec.ExecuteQuery(keywordQuery);
var r = keywordQuery.GetQuerySuggestionsWithResults(9, 9, true, true, true, true);
stopwatch.Restart();
clientContext.ExecuteQuery();
stopwatch.Stop();
服务器端对象模型,这样您就需要在SharePoint服务器中运行应用程序,并且可以直接通过代码获取结果源代码: var context = SPServiceContext.GetContext(spSite); var ssap = context.GetDefaultProxy(typeof(SearchServiceApplicationProxy))as SearchServiceApplicationProxy;
var webOwner = new SearchObjectOwner(SearchObjectLevel.SPWeb, spWeb);
var webResultSource = ssap.GetResultSourceByName(resultSourceName, webOwner);
与CSOM类似,您可以查询结果。