搜索结果来源:sharepoint 2013中的对话

时间:2013-11-05 07:52:58

标签: c#-4.0 sharepoint-2013

我需要一个控制台应用程序,我需要通过传递一组单词来搜索Converation结果源(Sharepoint 2013)并将内容记录在表格中。

要求:C#for sharepoint 2013中的控制台应用程序,每天运行,传递带有单词的查询字符串,例如:microsoft; sharepoint等。此查询字符串应搜索结果源(仅用于对话),因为我们需要监视团队网站,mysite和coimmunity网站上的内容。然后应该把它放在桌子上,并附上具有一套单词的细节。

请让我知道相同的API。

1 个答案:

答案 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();
  1. 服务器端对象模型,这样您就需要在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);
    
  2. 与CSOM类似,您可以查询结果。