日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SharePoint 2013 Search REST API 使用示例

發布時間:2025/3/19 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SharePoint 2013 Search REST API 使用示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  前言:在SharePoint2013中,提供Search REST service搜索服務,你可以在自己的客戶端搜索方法或者移動應用程序中使用,該服務支持REST web request。你可以使用KeyWord Query Language(KQL)或者FAST Query Language(FQL)來對Search REST Service進行搜索查詢,并且,試用與遠程客戶端應用程序、移動應用程序和其他應用程序。

一、?? Search REST service

支持方式:

Search REST service支持 HTTP POST方式和 HTTP GET requests方式

?

GET requests

URL:http://server/_api/search/query

Get方式你有兩種傳參方式,如下:

http://server/_api/search/query?query_parameter=value&query_parameter=value

http://server/_api/search/query(query_parameter=value&query_parameter=<value>)

POST requests

URL:http://server/_api/search/postquery

在Post方式中,你可以使用JavaScript Object Notation (JSON)方式傳參

?

Post方式的場景有三種:

Get方式傳參,Url超出長度限制,只有使用Post方式;

查詢條件非常復雜,Get方式難以滿足需要,使用Post方式;

對于某些特定參數,只支持Post方式。

二、Get方式查看返回XML

1、? 在我配置好的搜索頁面上,搜索“北京”,如下圖,有4個結果

2、? 使用Get方式返回xml,在_api/search/query 后面添加querytext參數”北京”的Escape值“%E5%8C%97%E4%BA%AC”

http://URL/_api/search/query?querytext='%E5%8C%97%E4%BA%AC'

?

(返回的xml截圖)

3、單個項目的XML節點

<d:element m:type="SP.SimpleDataRow"><d:Cells><d:element m:type="SP.KeyValue"><d:Key>Rank</d:Key><d:Value>10.3831567764282</d:Value><d:ValueType>Edm.Double</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>DocId</d:Key><d:Value>52</d:Value><d:ValueType>Edm.Int64</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>WorkId</d:Key><d:Value>52</d:Value><d:ValueType>Edm.Int64</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>Title</d:Key><d:Value>北京</d:Value><d:ValueType>Edm.String</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>Author</d:Key><d:Value>系統帳戶</d:Value><d:ValueType>Edm.String</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>Size</d:Key><d:Value>120</d:Value><d:ValueType>Edm.Int64</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>Path</d:Key><d:Value>http://url/DocLib/北方城市/北京.txt</d:Value><d:ValueType>Edm.String</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>Description</d:Key><d:Value m:null="true"/><d:ValueType>Null</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>Write</d:Key><d:Value>2013-08-21T02:22:46.0000000Z</d:Value><d:ValueType>Edm.DateTime</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>CollapsingStatus</d:Key><d:Value>0</d:Value><d:ValueType>Edm.Int64</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>HitHighlightedSummary</d:Key><d:Value><c0>北京</c0>是首都<c0>北京</c0>是首都<c0>北京</c0>是首都<c0>北京</c0>是首都<c0>北京</c0>是首都<c0>北京</c0>是首都<c0>北京</c0>是首都<c0>北京</c0>是首都<c0>北京</c0>是首都<c0>北京</c0>是首都<c0>北京</c0>是首都<c0>北京</c0>是首都</d:Value><d:ValueType>Edm.String</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>HitHighlightedProperties</d:Key><d:Value m:null="true"/><d:ValueType>Null</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>contentclass</d:Key><d:Value>STS_ListItem_DocumentLibrary</d:Value><d:ValueType>Edm.String</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>PictureThumbnailURL</d:Key><d:Value m:null="true"/><d:ValueType>Null</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>ServerRedirectedURL</d:Key><d:Value m:null="true"/><d:ValueType>Null</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>ServerRedirectedEmbedURL</d:Key><d:Value m:null="true"/><d:ValueType>Null</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>ServerRedirectedPreviewURL</d:Key><d:Value m:null="true"/><d:ValueType>Null</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>FileExtension</d:Key><d:Value>txt</d:Value><d:ValueType>Edm.String</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>ContentTypeId</d:Key><d:Value>0x01010027E858607844AC42AD371DFAA2B2557C</d:Value><d:ValueType>Edm.String</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>ParentLink</d:Key><d:Value>http://url/DocLib/北方城市</d:Value><d:ValueType>Edm.String</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>ViewsLifeTime</d:Key><d:Value m:null="true"/><d:ValueType>Null</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>ViewsRecent</d:Key><d:Value m:null="true"/><d:ValueType>Null</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>SectionNames</d:Key><d:Value/><d:ValueType>Edm.String</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>SectionIndexes</d:Key><d:Value/><d:ValueType>Edm.String</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>SiteLogo</d:Key><d:Value m:null="true"/><d:ValueType>Null</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>SiteDescription</d:Key><d:Value m:null="true"/><d:ValueType>Null</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>deeplinks</d:Key><d:Value m:null="true"/><d:ValueType>Null</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>importance</d:Key><d:Value>0</d:Value><d:ValueType>Edm.Int64</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>SiteName</d:Key><d:Value>http://url</d:Value><d:ValueType>Edm.String</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>IsDocument</d:Key><d:Value>true</d:Value><d:ValueType>Edm.Boolean</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>LastModifiedTime</d:Key><d:Value>2013-08-21T02:22:46.0000000Z</d:Value><d:ValueType>Edm.DateTime</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>FileType</d:Key><d:Value>txt</d:Value><d:ValueType>Edm.String</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>IsContainer</d:Key><d:Value>false</d:Value><d:ValueType>Edm.Boolean</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>WebTemplate</d:Key><d:Value m:null="true"/><d:ValueType>Null</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>SecondaryFileExtension</d:Key><d:Value>txt</d:Value><d:ValueType>Edm.String</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>docaclmeta</d:Key><d:Value m:null="true"/><d:ValueType>Null</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>OriginalPath</d:Key><d:Value>http://url/DocLib/北方城市/北京.txt</d:Value><d:ValueType>Edm.String</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>PartitionId</d:Key><d:Value>0c37852b-34d0-418e-91c6-2ac25af4be5b</d:Value><d:ValueType>Edm.Guid</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>UrlZone</d:Key><d:Value>1</d:Value><d:ValueType>Edm.Int32</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>AAMEnabledManagedProperties</d:Key> <d:Value>AttachmentURI;deeplinks;DefaultEncodingURL;ExternalMediaURL;HierarchyUrl;OrgParentUrls;OrgUrls;OriginalPath;ParentLink;Path;PictureThumbnailURL;PictureURL;PublishingImage;recommendedfor;ServerRedirectedEmbedURL;ServerRedirectedPreviewURL;ServerRedirectedURL;SiteLogo;SitePath;SPSiteURL;UserEncodingURL</d:Value><d:ValueType>Edm.String</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>RenderTemplateId</d:Key><d:Value>~sitecollection/_catalogs/masterpage/Display Templates/Search/Item_Default.js</d:Value><d:ValueType>Edm.String</d:ValueType></d:element><d:element m:type="SP.KeyValue"><d:Key>piSearchResultId</d:Key><d:Value>3_1</d:Value><d:ValueType>Edm.String</d:ValueType></d:element></d:Cells> </d:element> View Code

4、解疑,我看到這個結果,很奇怪,為什么我的網站中有4條結果,REST返回了5條,詳細查看每個SimpleDateRow發現,最后一個居然是之前做BCS測試的時候的結果,XML附后。?

<d:element m:type="SP.KeyValue"> <d:Key>Path</d:Key> <d:Value>bdc3://blobdatacontent_blobdatacontent/Default/00000000%252D0000%252D0000%252D0000%252D000000000000/1394/BlobDataContent/1396?s_id=iAwAAAA==&s_ce=048g24810001020408000h20005s</d:Value> <d:ValueType>Edm.String</d:ValueType> </d:element>

?

三、?? Get 方式 - XML調用實例

1、? 調用效果圖,如下:

2、? 后臺方法:

1 public void gvDateBind() 2 { 3 string keywords = "'" + System.Web.HttpUtility.UrlEncode(tbKeyWord.Text) + "'"; 4 string strRes = "http://url/_api/search/query?querytext=" + keywords; 5 6 WebClient wc = new WebClient(); 7 wc.Encoding = System.Text.Encoding.UTF8; 8 NetworkCredential nc = new NetworkCredential("username", "password", "ad"); 9 wc.Credentials = nc; 10 string str = wc.DownloadString(strRes); 11 12 XmlDocument doc = new XmlDocument(); 13 doc.LoadXml(str); 14 XmlNodeList xnodelist = doc.GetElementsByTagName("d:Rows"); 15 XmlNode node = xnodelist[0]; 16 17 DataTable dt = new DataTable(); 18 dt.Columns.Add("標題"); 19 dt.Columns.Add("作者"); 20 dt.Columns.Add("描述"); 21 dt.Columns.Add("鏈接"); 22 23 XmlNodeList xlist = node.ChildNodes; 24 25 foreach (XmlNode xnode in xlist) 26 { 27 XmlNodeList nn = xnode.ChildNodes[0].ChildNodes; 28 DataRow dr = dt.NewRow(); 29 30 foreach (XmlNode nnode in nn) 31 { 32 switch (nnode.ChildNodes[0].InnerText) 33 { 34 case "Title": 35 dr["標題"] = nnode.ChildNodes[1].InnerText; 36 break; 37 case "Author": 38 dr["作者"] = nnode.ChildNodes[1].InnerText; 39 break; 40 case "HitHighlightedSummary": 41 dr["描述"] = nnode.ChildNodes[1].InnerText; 42 break; 43 case "Path": 44 dr["鏈接"] = nnode.ChildNodes[1].InnerText; 45 break; 46 } 47 } 48 dt.Rows.Add(dr); 49 } 50 51 gvSearchResult.DataSource = dt; 52 gvSearchResult.DataBind(); 53 }

Get方式-Xml調用示例

?四、?? POST方式 - JSON調用實例

1、調用結果顯示

?

2、核心代碼

?

$.ajax({url: http://url/_api/search/postquery,type: "Post",dataType: "application/json;odata=verbose",data: JSON.stringify({'request': {'Querytext': queryText,'StartRow': 1,'RowLimit': 8,'SelectProperties': {'results': ['Title', 'ContentSource', 'DisplayAuthor', 'Path']},'TrimDuplicates': true,'Refiners': 'companies,contentclass,FileType(filter=6/0/*)',//'RefinementFilters': { 'results': ['filetype:equals("txt")'] } }}),headers: {"accept": "application/json;odata=verbose","content-type": "application/json;odata=verbose","X-RequestDigest": xRequestDigest},complete: ProcessSearchResult});

注:本來自己想寫個調用JSON的博客,但是看到CSDN上有人寫過了,自己就不寫了,把最重要的那段代碼貼給大家參考,大家有興趣可以參考下,博客地址附后!

?

五、?? 常用的查詢參數:

查詢關鍵字(querytext

http://server/_api/search/query?querytext='sharepoint'

?

JSON實例:

{'__metadata' : {'type' : 'Microsoft.Office.Server.Search.REST.SearchRequest'},'Querytext' : 'sharepoint'}

?

起始行(StartRow

http://server/_api/search/query?querytext='sharepoint'&startrow=10

?

JSON實例:

{'__metadata' : {'type' : 'Microsoft.Office.Server.Search.REST.SearchRequest'},'Querytext' : 'sharepoint','StartRow' : '10'}

?

返回行限制(RowLimit

http://server/_api/search/query?querytext='sharepoint'&rowlimit=30

?

JSON實例:

{'__metadata' : {'type' : 'Microsoft.Office.Server.Search.REST.SearchRequest'},'Querytext' : 'sharepoint','RowLimit' : '30'}

?

選擇屬性(SelectProperties

http://server/_api/search/query?querytext='sharepoint'&selectproperties='Title,Author'

?

JSON實例:

{'__metadata' : {'type' : 'Microsoft.Office.Server.Search.REST.SearchRequest'},'Querytext' : 'sharepoint','SelectProperties' : {'results' : ['Title, Author' ]}}

?

擴展名(RefinementFilters

http://server/_api/search/query?querytext='sharepoint'&refinementfilters='fileExtension:equals("docx")'

?

JSON實例:

{'__metadata' : {'type' : 'Microsoft.Office.Server.Search.REST.SearchRequest'},'Querytext' : 'sharepoint','RefinementFilters' : {'results' : ['fileExtension:equals("docx")']}}

?

排序(SortList

http://server/_api/search/query?querytext='sharepoint'&sortlist='rank:descending,modifiedby:ascending'

?

JSON實例:

{'__metadata' : {'type':'Microsoft.Office.Server.Search.REST.SearchRequest'},'Querytext' : 'sharepoint','SortList' :{'results' : [{'Property':'Created','Direction': '0'},{'Property':'FileExtension','Direction': '1'}]}}

?

返回總長度(SummaryLength

http://server/_api/search/query?querytext='sharepoint'&summarylength=150

?

JSON實例:

{'__metadata':{'type':'Microsoft.Office.Server.Search.REST.SearchRequest'},'Querytext' : 'sharepoint','Summarylength' : '150'}

?

參考鏈接:

1、SharePoint Search REST API overview

http://msdn.microsoft.com/en-us/library/jj163876.aspx

2、Jquery(Ajax) 調用 SharePoint 2013 Search Rest API 并使用Josn反回結果并簡單顯示

http://blog.csdn.net/abrahamcheng/article/details/8470834

總結

以上是生活随笔為你收集整理的SharePoint 2013 Search REST API 使用示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。