Enterprise Search Query Web Service Overview
Enterprise Search in Microsoft Office SharePoint Server 2007 exposes its search functionalities through an XML Web service. This allows you to access Enterprise Search results from client applications and Web applications outside of the context of a SharePoint site.
Accessing the Query Web Service
To access the Enterprise Search Query Web service and its methods, set a Web reference to the following:
For step-by-step instructions for setting a Web reference with Microsoft Visual Studio 2005, see How to: Create a Web Service Proxy Class for the Enterprise Search Query Web Service in Visual Studio 2005.
Search in Windows SharePoint Services also provides a Query Web service for exposing its search functionality, which supports the same Web methods as the Enterprise Search Query Web service, but which returns Search in Windows SharePoint Services results and which is scoped to the containing site or list. The location for the Search in Windows SharePoint Services Query Web service is:
For more information, see the Windows SharePoint Services Search Query Web Service in the Windows SharePoint Services 3.0 SDK.
The following table describes the Web methods available in the Query Web service.
Returns a list of scopes.
Returns a list of managed properties and scopes.
Returns a set of results in an XML string for the specified query.
Returns a set of results in a Microsoft ADO.NET DataSet object for the specified query.
Returns the name for a specified site.
Returns availability of the search service.
The Query Web service includes two methods for retrieving Enterprise Search results: Query and QueryEx.
Both methods accept the same input, a string containing XML that specifies the search query parameters; however, the format of the returned results differs. The QueryEx method returns the search results in a System.Data.DataSet object, and the Query method returns the search results in a string as XML. For more information, see Returning the Search Results.
Choosing the Query Web Service Method
To return multiple result types—such as relevant, special terms, and high confidence types—in the search results, you must use the QueryEx method.
Building the XML for the Search Query
The XML format for the search query is defined in the Microsoft.Search.Query Schema for Enterprise Search schema.
The actual search query is specified in the QueryText Element in Microsoft.Search.Query Schema for Enterprise Search element. You can build the search query by using either the Enterprise Search SQL Syntax Reference syntax or Enterprise Search Keyword Syntax Reference syntax; you specify the syntax that is used in the QueryText element's type attribute.
The following code example is sample XML for the QueryText element that specifies a search query using SQL syntax.
<QueryText language=xml:lang type='MSSQLFT'> SELECT Title, Path, Description, Write, Rank, Size FROM Scope() WHERE CONTAINS(Description,'SharePoint') </QueryText>
If you are using SQL syntax with the Query method, you must specify the following properties in the SELECT statement of the SQL query: Title, Path, Description, Write, Rank, and Size.
The following code example is sample XML for the QueryText element that specifies a search query using Keyword syntax.
<QueryText language=xml:lang type='STRING'> SharePoint </QueryText>
You can specify which properties to return for the keyword query using the Property Element in Microsoft.Search.Query Schema for Enterprise Search element.
If you do not specify any properties in the query XML, Enterprise Search returns a default set of properties.
Following are the default set of properties returned for the Query method:
Following are the default set of properties returned for the QueryEx method:
Returning the Search Results
The QueryEx method returns the search results in a System.Data.DataSet object. The DataSet object contains a System.DataSet.DataTable object for each result type that is returned. The different result types that can be returned are:
Relevant, in a table named RelevantResults
High confidence, in a table named HighConfidenceResults
Special terms, in a table named SpecialTermsResults
The Query method returns the search results in a string as XML. The format for the XML is defined by the Microsoft.Search.Response Schema for Enterprise Search and Microsoft.Search.Response.Document Schema for Enterprise Search schemas. The full set of search results is contained in the Results Element in Microsoft.Search.Response Schema for Enterprise Search element of the Microsoft.Search.Response schema, with each individual result represented by a Document Element in Microsoft.Search.Response.Document Schema for Enterprise Search element of the Microsoft.Search.Response.Document schema.
The only result type supported by the Query method is relevant results.