ExecuteSearch Operation

Client Declaration
  public ObjectSetType ExecuteSearch(SearchRequestType ExecuteSearchRequest)
Executes a query of a single object store or a merged scope.

Note that if you use multiple ExecuteSearch requests to page through the results for a query, consistency is not guaranteed.

Request

A subtype of the base, abstract SearchRequestType element. This must be a PrincipalSearch, RepositorySearch or StoredSearch element that includes the following:

  • A Boolean specifying whether the client requires paging and continuation capability for this search.
  • The value of a CollectionTerminator element from a previously returned page. This value indicates the start point of the current page.
  • The page size for the currently requested page. If omitted, the configurable page size set on the Content Engine is used (the default is 500).
  • A property filter to be applied to the elements of the result set.
A typical structure of an ExecuteSearch request is as follows. Elements that are derived from their base element are in parenthesis:

SearchRequestType(PrincipalSearch) ExecuteSearchRequest
     PropertyFilterType SelectionFilter
          FilterElementType IncludeProperties[0]
          FilterElementType IncludeProperties[1]
               .
               .
          FilterElementType IncludeTypes[0]
          FilterElementType IncludeTypes[1]
               .
               .

Response

ExecuteSearch has the following output, depending on whether it is successful or not:
Successful
Output is an ObjectSetType element, which specifies the following:
  • A CollectionTerminatorType base, abstract element, which resolves to one the following concrete subtypes, depending on the navigation status within the object set collection:
    • EndOfCollection: The last result row is included in this response.
    • EndOfPage: The object set contains the maximum number of object elements (page size) requested by the client.
    • TraversalError: A error has occurred in traversing the object set.
  • An array of zero or more ObjectValue elements, each representing a object selected by the query. Each element specifies the following:
    • A class ID, object ID, and object store identifying the object.
    • An array of identified properties and their values.
Failure
If an error has occurred, an ErrorStackType element is returned.
A typical structure of an ExecuteSearch response is as follows. Elements that are derived from their base element are in parenthesis:

ObjectSetType ObjSetType
     CollectionTerminatorType(EndofPage) CollectionTerminator
     ObjectValue Object[0]
          PropertyType(SingletonString) Property[0]
          PropertyType(SingletonInteger32) Property[1]
               .
               .
     ObjectValue Object[1]
          PropertyType(SingletonString) Property[0]
          PropertyType(SingletonInteger32) Property[1]
               .
               .

XML Schema

<operation name="ExecuteSearch">
   <input message="tns:ExecuteSearchRequest"/>
   <output message="tns:ExecuteSearchResponse"/>
   <fault message="tns:FaultResponse" name="GeneralError"/>
</operation>