SharePoint 2013 中使用代码获取 search reports(Top_Queries, Abandoned_Queries,No_Result_Queries )
2013-11-05 22:23
429 查看
本文讲述如何在SharePoint 2013 中使用代码获取 search reports(Top_Queries, Abandoned_Queries,No_Result_Queries )。
SharePoint 2013中提供多种report,供SharePoint 开发和管理人员分析和改进SharePoint search 服务(可以在管理中心的search service 设置中找到这些报表):
但是很多情况下,普通客户也想在页面 中看到这些报表,那这种情况就需要使用代码取 search report 的数据 了。
这里贡献一段用控制台应用程序读 report 数据的代码 ,注意如果要在 web part里面使用这些代码必须提权 (SPSecurity.RunWithElevatedPrivileges):
1. 首先在控制台应用程序中添加Dll引用
Microsoft.Office.Server.dll
Microsoft.Office.Server.Search.dll
Microsoft.Office.Server.Search.Applications.dll
Microsoft.SharePoint.dll
2. 将控制台应用程序的Target platform 改为X64
3. Program.cs代码如下:
SharePoint 2013中提供多种report,供SharePoint 开发和管理人员分析和改进SharePoint search 服务(可以在管理中心的search service 设置中找到这些报表):
但是很多情况下,普通客户也想在页面 中看到这些报表,那这种情况就需要使用代码取 search report 的数据 了。
这里贡献一段用控制台应用程序读 report 数据的代码 ,注意如果要在 web part里面使用这些代码必须提权 (SPSecurity.RunWithElevatedPrivileges):
1. 首先在控制台应用程序中添加Dll引用
Microsoft.Office.Server.dll
Microsoft.Office.Server.Search.dll
Microsoft.Office.Server.Search.Applications.dll
Microsoft.SharePoint.dll
2. 将控制台应用程序的Target platform 改为X64
3. Program.cs代码如下:
using Microsoft.Office.Server.Search.Administration; using Microsoft.Office.Server.Search.Analytics; using Microsoft.Office.Server.Search.Query; using Microsoft.SharePoint; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { if (args.Length != 2) { Console.WriteLine("Please use : GetTopSearchQueryText.exe siteUrl topNumber"); } else { try { using (SPSite oSPsite = new SPSite(args[0])) { Microsoft.SharePoint.SPServiceContext context = SPServiceContext.GetContext(oSPsite); SearchServiceApplicationProxy searchProxy = context.GetDefaultProxy(typeof(SearchServiceApplicationProxy)) as SearchServiceApplicationProxy; SearchServiceApplicationInfo ssai = searchProxy.GetSearchServiceApplicationInfo(); SearchServiceApplication searchApp = SearchService.Service.SearchServiceApplications.First<SearchServiceApplication>(); for (int i = 0; i < 100; i++) { var reports = searchApp.GetSearchReport(i, Guid.Empty, oSPsite.ID, DateTime.Now.AddMonths(-2), false, uint.Parse(args[1])); // GetSearchReport 的第一参数 report type 含义,微软的文档没有说,就让传int32,经过笔者循环验证的结论 // 1 : Top_Queries // 2: Abandoned_Queries // 3: No_Result_Queries Console.WriteLine("reports.Count:" + reports.Count); foreach (QueryReportData report in reports) { Console.WriteLine("Query:" + report.Query + ", count:" + report.Count + ", Scope:" + report.Scope); } } } } catch (Exception ex) { Console.WriteLine("error:" + ex.Message); Console.WriteLine("StackTrace:" + ex.StackTrace); } Console.WriteLine("Press any key to exit"); Console.ReadKey(); } } } }
相关文章推荐
- SharePoint 客户端对象模型 (一) ECMA Script
- 在Javascript里访问SharePoint列表数据的实现方法
- 3ff8 《sharepoint 2010云计算解决方案》使用SQL Azure 的BI 解决方案
- sharepoint国内网站一览表(转发)
- sharepoint 错误 6398
- sharepoint基本知识介绍
- sharepoint实践经验的速查手册
- Sharepoint任务甘特图和资源甘特图Webpart
- SharePoint Workspace 2010 概述 协作专家升级来了。
- SharePoint Workspace 2010 入门 - SharePoint 工作区 - Microsoft Office
- 下载详细信息: SharePoint 2010:专业开发人员评估指南和演练
- SharePoint 2010 新体验4 - SharePoint Workspace - Kaneboy的博客 - 51CTO技术博客
- SharePoint Workspace 2010 中的新增功能 - SharePoint 工作区 - Microsoft Office
- 沟通与协作:使用 Groove 和 SharePoint 创建强大的连接
- 支持的 SharePoint 外接程序和报表服务器的组合
- 处方1-1使用对象模型新建站点集
- 2013最多“情人节”婚庆网购窝窝商城掀热潮
- 归档,SharePoint的好伙伴
- sharepoint 术语库
- Lync 2013 – Automated Backup Script