3.1.4.5.2.2 QueryExResponse

This element is the body of the QueryExSoapOut SOAP message.

 <s:element name="QueryExResponse">
   <s:complexType>
     <s:sequence>
       <s:element name="QueryExResult" minOccurs="0">
         <s:complexType>
           <s:sequence>
             <s:element ref="s:schema"/>
             <s:any/>
           </s:sequence>
         </s:complexType>
       </s:element>
     </s:sequence>
   </s:complexType>
 </s:element>

QueryExResult: Contains the search results for the search query. The information MUST be encoded in an ADO.NET DataSet object, which MUST be encoded in the DiffGram format. This format is specified in [MS-DSDIFFGRAM]. The name of the DataSet object MUST be "Results".

The DataSet object MUST contain the following extended properties:

Name

Description

QueryTerms

The extracted tokens from the search query, separated by semicolons, in the order that they occur, including tokens generated by the protocol server in the case the request's Query.EnableStemming element, or Query.EnableNicknames element, or Query.EnablePhonetic element were set to "true" as specified in section 2.2.3.1. For a search query of type "MSSQLFT", this includes all tokens that are used in the CONTAINS and FREETEXT predicates. For a search query of type "STRING", this includes all tokens used in the query text. If Query.ResultProvider is "FASTSearch", the protocol server MUST return the original query text without semicolons between terms.

IgnoredNoiseWords

The noise words that were found in the search query, separated by semicolons, in any order. For a search query of type "MSSQLFT", this includes all noise words that are used in the CONTAINS and FREETEXT predicates. For a search query of type "STRING", this includes all noise words used in the query text. If Query.ResultProvider is "FASTSearch", the protocol server MUST return an empty value.

SpellingSuggestion

The spelling suggestion for the search query. The protocol server suggests a different spelling of the search query if it detects a good chance that the spelling suggestion will increase the quality of the search results. How this chance is calculated is an implementation detail. If there is no good chance that a spelling suggestion would increase the quality of the search results, the protocol server MUST leave this extended property empty.

ElapsedTime

The time, in milliseconds, it took to run the search query.

Keyword

The token that is defined in the Definition extended property. The protocol server can store a list of definitions for certain tokens. If such a token is found in the query text, this extended property is set to the token that a definition was found for. If no definition could be found for any of the tokens in the query text, this extended property MUST NOT be set.

Definition

The definition of the token in the Keyword extended property. If the Keyword extended property is empty, the value of this extended property MUST be empty as well.

QueryModification

The query modification for the search query. If original query returns zero results, the protocol server modifies the query according to Query.ResubmitFlags, if set on the request, and re-evaluates the query. If query was modified and re-evaluated before returning search results, the protocol server MUST return the modified query in this property. If ResultProvider is "SharepointSearch", the protocol server MUST NOT return this property.

For a description of extended properties in general, see [MS-DSDIFFGRAM] section 2.3.1.

Depending on the formulation of the search query, there can be up to three tables in the DataSet object, one for the relevant results, one for best bets and one for high confidence results. All of these tables MUST contain two extended properties, TotalRows and IsTotalRowsExact, as specified in [MS-QSSWS] section 3.1.4.1.3.6. The former MUST contain the total number of crawled items, best bets or high confidence results that match the conditions given in the search query, or an approximation thereof. The latter MUST be "True" if the number given in TotalRows is an exact number, rather than an approximation, and "False" otherwise.