{"id":767,"date":"2010-09-24T21:42:07","date_gmt":"2010-09-24T19:42:07","guid":{"rendered":"http:\/\/www.itidea.nl\/?p=767"},"modified":"2015-09-08T20:35:25","modified_gmt":"2015-09-08T18:35:25","slug":"example-of-using-the-spservices-search-web-service","status":"publish","type":"post","link":"https:\/\/www.itidea.nl\/index.php\/example-of-using-the-spservices-search-web-service\/","title":{"rendered":"Example of using the SPServices Search web service"},"content":{"rendered":"<p>Instead of CAML you can also use a search query by using SQL or keyword syntax to search the SharePoint environment client-side by using the Search web service. The SPServices library supports the Query operation to do this.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/p>\n<p>Hereby I show you a few examples of how to use it.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/p>\n<p>First let\u2019s start building the query. The query is based on the Microsoft.Search.Query schema, which can be found here: <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms563775.aspx\">http:\/\/msdn.microsoft.com\/en-us\/library\/ms563775.aspx<\/a>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/p>\n<p>A query using keyword syntax:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nvar queryText = &quot;&lt;QueryPacket xmlns='urn:Microsoft.Search.Query' Revision='1000'&gt;&quot;\r\nqueryText += &quot;&lt;Query&gt;&quot;\r\nqueryText += &quot;&lt;Context&gt;&quot;\r\nqueryText += &quot;&lt;QueryText language='en-US' type='STRING'&gt;&quot;\r\nqueryText += &quot;Estonia&quot;;\r\nqueryText += &quot;&lt;\/QueryText&gt;&quot;\r\nqueryText += &quot;&lt;\/Context&gt;&quot;\r\nqueryText += &quot;&lt;\/Query&gt;&quot;\r\nqueryText += &quot;&lt;\/QueryPacket&gt;&quot;;\r\n<\/pre>\n<p>To fire this query by the Query operation of the Search web service via SPServices the following code can be used:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 var title, url = &quot;&quot;;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $().SPServices({\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 operation: &quot;Query&quot;,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 queryXml: queryText,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 completefunc: function(xData, Status) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$(xData.responseXML).find(&quot;QueryResult&quot;).each(function() {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/let's see what the response looks like\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $(&quot;#result&quot;).text($(this).text());\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 });\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 });\r\n<\/pre>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/p>\n<p><em>#results<\/em> is a div element with the id <em>results<\/em> to show the response of the query web service. The response format returned by the query web service for the Query operation is described by the Microsoft.Search.Response schema (<a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms578335.aspx\">http:\/\/msdn.microsoft.com\/en-us\/library\/ms578335.aspx<\/a>)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/p>\n<p>The result of running the above example:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">&lt;ResponsePacket xmlns=&quot;urn:Microsoft.Search.Response&quot;&gt;\r\n\u00a0 &lt;Response&gt;\r\n\u00a0\u00a0\u00a0 &lt;Range&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;StartAt&gt;1&lt;\/StartAt&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Count&gt;1&lt;\/Count&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;TotalAvailable&gt;1&lt;\/TotalAvailable&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Results&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Document relevance=&quot;428&quot; xmlns=&quot;urn:Microsoft.Search.Response.Document&quot;&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Title&gt;Estonia&lt;\/Title&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Action&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;LinkUrl size=&quot;0&quot; fileExt=&quot;aspx&quot;&gt;http:\/\/your_url\/Lists\/Country\/DispForm.aspx?ID=24&lt;\/LinkUrl&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/Action&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Description \/&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Date&gt;2010-04-08T13:45:47+02:00&lt;\/Date&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/Document&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/Results&gt;\r\n\u00a0\u00a0\u00a0 &lt;\/Range&gt;\r\n\u00a0\u00a0\u00a0 &lt;Status&gt;SUCCESS&lt;\/Status&gt;\r\n\u00a0 &lt;\/Response&gt;\r\n&lt;\/ResponsePacket&gt;\r\n<\/pre>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/p>\n<p>One result is returned here to show a simple and small piece of xml. The results element contains the actual result of the query, the document element contains a single content item in the search results.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/p>\n<p>A query using SQL syntax:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nvar queryText = &quot;&lt;QueryPacket xmlns='urn:Microsoft.Search.Query' Revision='1000'&gt;&quot;\r\nqueryText += &quot;&lt;Query&gt;&quot;\r\nqueryText += &quot;&lt;Context&gt;&quot;\r\nqueryText += &quot;&lt;QueryText language='en-US' type='MSSQLFT'&gt;&quot;\r\nqueryText += &quot;SELECT Title, Rank, Size, Description, Write, Path FROM portal..scope() WHERE CONTAINS ('Estonia') ORDER BY \\&quot;Rank\\&quot; DESC&quot;\r\nqueryText += &quot;&lt;\/QueryText&gt;&quot;\r\nqueryText += &quot;&lt;\/Context&gt;&quot;\r\nqueryText += &quot;&lt;\/Query&gt;&quot;\r\nqueryText += &quot;&lt;\/QueryPacket&gt;&quot;;\r\n<\/pre>\n<p>And the result:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;ResponsePacket xmlns=&quot;urn:Microsoft.Search.Response&quot;&gt;\r\n\u00a0 &lt;Response&gt;\r\n\u00a0\u00a0\u00a0 &lt;Range&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;StartAt&gt;1&lt;\/StartAt&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Count&gt;1&lt;\/Count&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;TotalAvailable&gt;1&lt;\/TotalAvailable&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Results&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Document xmlns=&quot;urn:Microsoft.Search.Response.Document&quot;&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Action&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;LinkUrl fileExt=&quot;aspx&quot;&gt;http:\/\/your_url\/Lists\/Country\/DispForm.aspx?ID=24&lt;\/LinkUrl&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/Action&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Properties mlns=&quot;urn:Microsoft.Search.Response.Document.Document&quot;&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Property&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Name&gt;TITLE&lt;\/Name&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Type&gt;String&lt;\/Type&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Value&gt;Estonia&lt;\/Value&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/Property&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Property&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Name&gt;RANK&lt;\/Name&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Type&gt;Int64&lt;\/Type&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Value&gt;1000&lt;\/Value&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/Property&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Property&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Name&gt;SIZE&lt;\/Name&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Type&gt;Int64&lt;\/Type&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0&lt;Value&gt;0&lt;\/Value&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/Property&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Property&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Name&gt;WRITE&lt;\/Name&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Type&gt;DateTime&lt;\/Type&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Value&gt;2010-04-08T13:45:47+02:00&lt;\/Value&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/Property&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Property&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Name&gt;PATH&lt;\/Name&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Type&gt;String&lt;\/Type&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Value&gt;http:\/\/your_url\/Lists\/Country\/DispForm.aspx?ID=24&lt;\/Value&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/Property&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/Properties&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/Document&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/Results&gt;\r\n\u00a0\u00a0\u00a0 &lt;\/Range&gt;\r\n\u00a0\u00a0\u00a0 &lt;Status&gt;SUCCESS&lt;\/Status&gt;\r\n\u00a0 &lt;\/Response&gt;\r\n&lt;\/ResponsePacket&gt;\r\n<\/pre>\n<p>The results of the keyword and SQL syntax are slightly different. Keep this in mind while traversing the xml and getting the title for instance.<br \/>\nBy using the SQL syntax and getting the title in the resulting xml, the Property element is involved:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $().SPServices({\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 operation: &quot;Query&quot;,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 queryXml: queryText,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 completefunc: function(xData, Status) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $(xData.responseXML).find(&quot;QueryResult&quot;).each(function() {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 var x = $(&quot;&lt;xml&gt;&quot; + $(this).text() + &quot;&lt;\/xml&gt;&quot;);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/let's see what the response looks like\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/$(&quot;#result&quot;).text($(this).text());\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/traverse the xml to get the items\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 x.find(&quot;Document&quot;).each(function() {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/when using SQL syntax\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 url = $(&quot;Action&gt;LinkUrl&quot;, $(this)).text();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $(this).find(&quot;Property&quot;).each(function() {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if ($(&quot;Name&quot;, $(this)).text() == &quot;TITLE&quot;) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 title = $(&quot;Value&quot;, $(this)).text();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 });\r\n                        \/\/end SQL syntax\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $(&quot;#result&quot;).text(&quot;title: &quot; + title + &quot; - LinkUrl: &quot; + url);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 });\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 });\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 });\r\n<\/pre>\n<p>By using the keyword syntax and getting the title, it\u2019s just a direct child element of the Document element and this code can be used:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $().SPServices({\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 operation: &quot;Query&quot;,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 queryXml: queryText,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 completefunc: function(xData, Status) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0$(xData.responseXML).find(&quot;QueryResult&quot;).each(function() {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 var x = $(&quot;&lt;xml&gt;&quot; + $(this).text() + &quot;&lt;\/xml&gt;&quot;);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/let's see what the response looks like\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/$(&quot;#result&quot;).text($(this).text());\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/traverse the xml to get the items\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 x.find(&quot;Document&quot;).each(function() {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 url = $(&quot;Action&gt;LinkUrl&quot;, $(this)).text();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/when using keyword syntax\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 title = $(&quot;Title&quot;, $(this)).text();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/end keyword syntax\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $(&quot;#result&quot;).text(&quot;title: &quot; + title + &quot; - LinkUrl: &quot; + url);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 });\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 });\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 });\r\n\r\n<\/pre>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/p>\n<p>The examples described here give just one result for demonstration purposes. This can be seen at the elements <em>count<\/em> and <em>totalavailable<\/em> in the result xml. <em>Count<\/em> is the actual number of items returned, while <em>totalavailable<\/em> is the total number of results returned by the query web service. When getting real life results please mind the number of items returned by default is 10. Of course the query can be adjusted with a custom count:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nvar queryText = &quot;&lt;QueryPacket xmlns='urn:Microsoft.Search.Query' Revision='1000'&gt;&quot;\r\nqueryText += &quot;&lt;Query&gt;&quot;\r\nqueryText += &quot;&lt;Range&gt;&lt;Count&gt;50&lt;\/Count&gt;&lt;\/Range&gt;&quot;;\r\nqueryText += &quot;&lt;Context&gt;&quot;\r\nqueryText += &quot;&lt;QueryText language='en-US' type='STRING'&gt;&quot;\r\nqueryText += &quot;Estonia&quot;;\r\nqueryText += &quot;&lt;\/QueryText&gt;&quot;\r\nqueryText += &quot;&lt;\/Context&gt;&quot;\r\nqueryText += &quot;&lt;\/Query&gt;&quot;\r\nqueryText += &quot;&lt;\/QueryPacket&gt;&quot;;\r\n<\/pre>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/p>\n<p>To fully optimize the query to your needs please check out the Microsoft.Search.Query schema for a lot of useful options.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Instead of CAML you can also use a search query by using SQL or keyword syntax to search the SharePoint environment client-side by using the Search web service. The SPServices library supports the Query operation to do this.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Hereby I &#8230; <a class=\"more-link\" href=\"https:\/\/www.itidea.nl\/index.php\/example-of-using-the-spservices-search-web-service\/\">Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,8],"tags":[11,33],"class_list":["post-767","post","type-post","status-publish","format-standard","hentry","category-sharepoint-2007","category-sharepoint-2010","tag-jquery","tag-spservices"],"_links":{"self":[{"href":"https:\/\/www.itidea.nl\/index.php\/wp-json\/wp\/v2\/posts\/767","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itidea.nl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itidea.nl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itidea.nl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itidea.nl\/index.php\/wp-json\/wp\/v2\/comments?post=767"}],"version-history":[{"count":8,"href":"https:\/\/www.itidea.nl\/index.php\/wp-json\/wp\/v2\/posts\/767\/revisions"}],"predecessor-version":[{"id":775,"href":"https:\/\/www.itidea.nl\/index.php\/wp-json\/wp\/v2\/posts\/767\/revisions\/775"}],"wp:attachment":[{"href":"https:\/\/www.itidea.nl\/index.php\/wp-json\/wp\/v2\/media?parent=767"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itidea.nl\/index.php\/wp-json\/wp\/v2\/categories?post=767"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itidea.nl\/index.php\/wp-json\/wp\/v2\/tags?post=767"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}