3.1.4.1.3.6 ResultTable

Namespace: http://www.microsoft.com/sharepoint/search/KnownTypes/2008/08

This contains a list of query results, all of which are of the type specified in TableType. The format of the Table element depends on the type of query results. The different types of query results are specified in section 2.2.5.5.

 <xs:complexType name="ResultTable" xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:sequence>
     <xs:element minOccurs="0" name="IsTotalRowsExact" type="xs:boolean"/>
     <xs:element xmlns:tns5="http://schemas.datacontract.org/2004/07/Microsoft.Office.Server.Search.Query" minOccurs="0" name="ResultType" type="tns5:ResultType"/>
     <xs:element minOccurs="0" name="RowCount" type="xs:int"/>
     <xs:element minOccurs="0" name="Table" nillable="true">
       <xs:complexType>
         <xs:sequence>
           <xs:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax"/>
           <xs:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax"/>
         </xs:sequence>
       </xs:complexType>
     </xs:element>
     <xs:element minOccurs="0" name="TimeZoneID" type="xs:int"/>
     <xs:element minOccurs="0" name="TotalRows" type="xs:int"/>
     <xs:element minOccurs="0" name="TotalRowsIncludingDuplicates" type="xs:int"/>
     <xs:element xmlns:q3="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Properties" nillable="true" type="q3:ArrayOfKeyValueOfstringanyType"/>
   </xs:sequence>
 </xs:complexType>

IsTotalRowsExact: This MUST be "true" if the number given in TotalRows is an exact number, rather than an approximation, and "false" otherwise.

ResultType: The type of query results returned in the Table element.

RowCount: The number of query results contained in the Table element.

Table: This contains a table of query results. The information MUST be encoded as an ADO.NET DataTable object using the DiffGram format. This format is specified in [MS-DSDIFFGRAM]. This element MUST contain one of the following types of tables.

Type

Description

RelevantResults Table

The RelevantResults table contains the actual query results. It MUST only be present if the ResultTypes element in the properties element of the Execute message contains ResultType.RelevantResults, as specified in section 2.2.5.5. The table MUST have one column per requested property that is specified in KeywordQueryProperties.SelectProperties, as specified in , or SELECT statement of the SharePoint Search SQL syntax as specified in [MS-SEARCH] section 2.2.12.3 and 2.2.13.3. It MUST have one row per search result. In any given row, the values in the columns MUST represent the value that the corresponding property has for that item. The type of the column MUST be the type of the managed property, as specified in ManagedPropertyInformation.Type in section 3.1.1.3.

SpecialTermResults Table

The SpecialTermResults table contains best bets that apply to the search query. It MUST only be present if the ResultTypes element in the properties element of the Execute operation contains ResultType.SpecialTermResults, as specified in section 2.2.5.5. It MUST have one row per best bet, and it MUST have the columns Title, Url and Description. The columns MUST contain, respectively, the title of the best bet, the URL that the best bet links to, and a human-readable description of the best bet. All of these columns are of the string type.

HighConfidenceResults Table

The HighConfidenceResults table contains high confidence results that apply to the search query. It MUST only be present if the ResultTypes element in the properties element of the Execute operation contains ResultType.HighConfidenceResults (as specified in section 2.2.5.5) and ResultsProvider element in the properties element of the Execute operation is not SearchServer.FASTSearch. It MUST have one row per high confidence result, and it MUST have the following columns - Title, Url, Description, HighConfidenceImageURL, HighConfidenceDisplayProperty1, HighConfidenceDisplayProperty2, HighConfidenceDisplayProperty3, HighConfidenceDisplayProperty4, HighConfidenceDisplayProperty5, HighConfidenceDisplayProperty6, HighConfidenceDisplayProperty7, HighConfidenceDisplayProperty8, HighConfidenceDisplayProperty9, HighConfidenceDisplayProperty10, HighConfidenceDisplayProperty11, HighConfidenceDisplayProperty12, HighConfidenceDisplayProperty13, HighConfidenceDisplayProperty14, HighConfidenceDisplayProperty15, HighConfidenceType. All of these columns are of string type. The Title column MUST contain the title of the high confidence result. This column MUST NOT be empty. The URL column MUST contain a valid URL that points to the high confidence result. This column MUST NOT be empty. The Description column SHOULD contain a description of the high confidence result. The HighConfidenceImageUrl column SHOULD contain the URL of a picture that represents the high confidence result. The HighConfidenceType column MUST contain the type of the high confidence result. It MUST NOT be empty. The possible value for this column is defined by the search administrator. The use of all other columns is at the discretion of the search administrator.

VisualBestBetsResults Table

The VisualBestBetsResults table contains visual best bets that apply to the search query. It MUST only be present if the ResultTypes element in the properties element of the Execute operation contains ResultType.VisualBestBetsResults (as specified in section 2.2.5.5) and ResultsProvider element in the properties element of the Execute operation is not SearchServer.SharepointSearch. It MUST have one row per visual best bet, and it MUST have the columns Name, Uri, Description, Keyword, Teaser, TeaserContentType. The columns MUST contain, respectively, the name of the visual best bet, the URL that the visual best bet links to, a human-readable description of the visual best bet, the keyword term for the visual best bet, a short summary to be displayed, and the content type of the summary. All of these columns are of string type.

RefinementResults Table

The RefinementResults table contains refinement results that apply to the search query. It MUST only be present if the ResultTypes element in the properties element of the Execute operation contains ResultType.RefinementResults (as specified in section 2.2.5.5) and ResultsProvider element in the properties element of the Execute operation is not SearchServer.SharepointSearch. It MUST have one row per refinement, and it MUST have the columns RefinerName, RefinementName, RefinementValue, RefinementCount and RefinementToken. The columns MUST contain, respectively, the name of the refined managed property, the display name of the refinement, the value of the refinement bucket, the result count for this refinement, and the token used to apply the refinement through a new query. All of these columns are of string type, except RefinementCount which is of type integer.

The table of each type SHOULD contain column piSearchResultId, which contains information about a particular search result for query logging. This information SHOULD be sent to RecordPageClick method as a clickedResultId parameter of the RecordPageClick method of SearchExecutor ([MS-SRCHCSOM] section 3.1.5.18). If this column doesn’t exist or is an empty string, then the client MUST NOT call RecordPageClick. The information is represented as a set of integer values encoded in a string in the following format: BlockType_ResultPosition_ImmediacyInformation_ClickType. These fields MUST BE parsed and set to the appropriate properties when RecordPageClick is called (section 3.1.4.16). If ImmediacyInformation equals to 1 then QueryLogImmediacyInfo (section 3.1.4.16.3.2) MUST BE set and passed to RecordPageClick, otherwise a NULL value MUST BE passed.

TimeZoneID: Contains the local time zone identifier, which represents the local time zone of the website that processes the search query. The protocol server MUST return local time identifier according to the specified time zone.

TotalRows: This element MUST contain the total number of results that match the conditions given in the search query and are of the type specified in the ResultType element.

TotalRowsIncludingDuplicates: This element SHOULD contain the total number of results, including duplicates, that match the conditions given in the search query and are of the type specified in the ResultType element<60>.

Properties:  Specifies a property bag of key value pairs. MUST be of ArrayOfKeyValueOfstringanyType data type as specified section in section 2.2.4.18 SHOULD contain the following properties:

  • Order: Reserved for future use.

  • ResultTitle: Specifies the title associated with results for the transformed query by query rule action. MUST NOT be more than 64 characters in length.

  • ResultTitleUrl: Specifies the URL to be linked to the ResultTitle. MUST NOT be more than 2048 characters in length.

  • GroupTemplateId: Specifies the identifier of the layout template that specifies how the results returned will be arranged.

  • ItemTemplateId: Specifies the identifier of the layout template that specifies how the result item will be displayed.

  • QueryRuleId: Specifies the unique identifier of the query rule that produced the result set. MUST be {00000000-0000-0000-0000-000000000000} if the result set is not associated to a query rule.

  • Error: Specifies the details of the exception if any that occurred on the protocol server while processing the search query. The value of this field is specific to the implementation of the protocol client.

  • TableType: Specifies the type of results in the Table element. MUST NOT be NULL.

  • QueryId: Specifies the identifier for the search query. MUST be the same value as specified by the protocol client in properties.Properties.Id if QueryRuleId is set to {00000000-0000-0000-0000-000000000000}. Otherwise, MUST be the value specified in QueryRuleId.

  • piPageImpressionBlockType: Specifies the identifier of a result block inside query logging page impression corresponding to the ResultTable. It is represented in a byte format and MUST BE sent to RecordPageClick method of SearchExecutor to record a user click ([MS-SRCHCSOM] section 3.1.5.18). If this property doesn’t exist or is an empty string then RecordPageClick MUST NOT be called.