前言:在SharePoint2013中,提供Search REST service搜索服务,你可以在自己的客户端搜索方法或者移动应用程序中使用,该服务支持REST web request。你可以使用KeyWord Query Language(KQL)或者FAST Query Language(FQL)来对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>