SharePoint 2013: Search Query APIs
Introduction
In this article I'll go through the details of the SharePoint 2013 Search REST API. This new REST service is the best way to go in a variety of application scenarios. SharePoint Apps built using JavaScript is a good example. External Applications to SharePoint that require search functionality can also leverage this service as the endpoint for communication into the Search platform.
The old search.asmx SOAP web service is marked as deprecated in SharePoint 2013 and the new Search REST service is the replacement.
Location of the Search Rest service
The Search REST service is located at the following URI: http://host/site/_api/search
The Search REST API
The Search REST service exposed by the URI specified above provides the following methods or entry points.
The new Result Source feature in SharePoint 2013 is really cool, writing queries against them is not. With scopes you could specify them by name (that is, All Sites or People). However with result sources, you must specify the id not the name. This can make it tricky to develop custom coded solutions. In comparing an on-premises installation of SharePoint 2013 with a SharePoint Online Preview tenant, here is the list I came up with. Hopefully, it will save you some time when you need to write a query.
Result Source | ID |
Documents | e7ec8cee-ded8-43c9-beb5-436b54b31e84 |
Items matching a content type | 5dc9f503-801e-4ced-8a2c-5d1237132419 |
Items matching a tag | e1327b9c-2b8c-4b23-99c9-3730cb29c3f7 |
Items related to current user | 48fec42e-4a92-48ce-8363-c2703a40e67d |
Items with same keyword as this item | 5c069288-1d17-454a-8ac6-9c642a065f48 |
Local People Results | b09a7990-05ea-4af9-81ef-edfab16c4e31 |
Local Reports And Data Results | 203fba36-2763-4060-9931-911ac8c0583b |
Local SharePoint Results | 8413cd39-2156-4e00-b54d-11efd9abdb89 |
Local Video Results | 78b793ce-7956-4669-aa3b-451fc5defebf |
Pages | 5e34578e-4d08-4edc-8bf3-002acf3cdbcc |
Pictures | 38403c8c-3975-41a8-826e-717f2d41568a |
Popular | 97c71db1-58ce-4891-8b64-585bc2326c12 |
Recently changed items | ba63bbae-fa9c-42c0-b027-9a878f16557c |
Recommended Items | ec675252-14fa-4fbe-84dd-8d098ed74181 |
Wiki | 9479bf85-e257-4318-b5a8-81a180f5faa1 |
Example : set a search scope for People:
<script>
$(document).ready(function () {
$.ajax({
url: _spPageContextInfo.webAbsoluteUrl +
"?querytext='*'&sourceid='b09a7990-05ea-4af9-81ef-edfab16c4e31'" +
"&selectproperties='AccountName',PictureURL,PreferredName'" +
"&rowlimit=99",
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
cache: false,
success: function (result) {
} // success function
}); //.ajax
}); //docReady
</script>