SharePoint 2013 客户端模型(Client Object Model) 调用搜索(Query Search):
SharePoint 2013 提供客户端调用Search 模型的方式,方便把SharePoint 搜索和其他系统整合。
下面说明如何在一个Asp.net程序中调用SharePoint 搜索:
1. 使用VS2010 新建一个 Asp.net Web Application 项目
2. 在该项目中添加如下引用
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Search.dll
3. 新建一个Web form,使用默认文件名 WebForm1.aspx
4. 在web form提添加如下控件
a. 添加一个TextBox (给用户输入搜索关键字用,命名为txtSearchBox)
b. 添加一个Button, text 改为Search , 用于提交搜索查询
c. 添加一个GridView,命名为 resultGrid, 用于显示查询结果
5. 给Button 添加点击事件,代码如下:
using (ClientContext clientContext = new ClientContext("http://SharePointServer/SubSite")) { KeywordQuery keywordQuery = new KeywordQuery(clientContext); keywordQuery.QueryText = txtSearchBox.Text; SearchExecutor searchExecutor = new SearchExecutor(clientContext); ClientResult<ResultTableCollection> results = searchExecutor.ExecuteQuery(keywordQuery); clientContext.ExecuteQuery(); DataTable table = new DataTable(); DataColumn titleCol = new DataColumn("Title"); table.Columns.Add(titleCol); DataColumn pathCol = new DataColumn("Path"); table.Columns.Add(pathCol); foreach(var resultRow in results.Value[0].ResultRows) { DataRow row = table.NewRow(); row["Title"] = resultRow["Title"]; row["Path"] = resultRow["Path"]; table.Rows.Add(row); } this.resultGrid.DataSource = table; this.resultGrid.DataBind(); }