GetSearchMetadata Operation

Client Declaration
  public GetSearchMetadataResponse GetSearchMetadata(GetSearchMetadataRequest GetSearchMetadataRequest)
This operation is a companion to the ExecuteSearch operation, and provides the metadata (class and property descriptions) for a particular search scope.

A GetSearchMetadata response is similar to a response by a GetObjects request that specifies the ClassDescriptions property (a set collection of ClassDescription objects) of an object store. However, unlike a GetObjects response, only those ClassDescription objects that describe classes that are searchable in the specified search scope and are allowed by the class filter are included.

The PropertyDescriptions and ProperSubclassPropertyDescriptions object collections returned for any ClassDescription objects in the ClassDescriptions collection include only property descriptions of properties that are relevant to the query (that is queryable, selectable or orderable).

Request

A GetSearchMetadataRequest element, which specifies the following:
  • A list of class identifiers, filtering the set of searchable classes for which information is returned.
  • A SearchScopeType element, which specifies the scope of object stores to search.
  • A property filter, which controls what properties will be returned for the specified object. It can be composed of zero or more of the following items:
    • An array of identified properties to include.
    • An array of data types, all properties of which will be included.
    • A list of properties to exclude, overriding any properties previously specified.
A typical structure of a GetSearchMetadata request is as follows. Elements that are derived from their base element are in parenthesis:

GetSearchMetadataRequest GetSearchMetadataRequest
     (MergedScope)SearchScopeType SearchScope
          (ObjectStoreScope)SearchScopeType ComponentScope[0]
          (MergedScope)SearchScopeType ComponentScope[1]
               (ObjectStoreScope)SearchScopeType ComponentScope[0]
               (MergedScope)SearchScopeType ComponentScope[1]
                    .
                    .
     PropertyFilterType PropertyFilter
          FilterElementType IncludeProperties[0]
          FilterElementType IncludeProperties[1]
               .
               .
          FilterElementType IncludeTypes[0]
          FilterElementType IncludeTypes[1]
               .
               .

Response

GetSearchMetadata has the following output, depending on whether it is successful or not:
Successful
Output is a GetSearchMetadataResponse element, which specifies the following:
  • A unique ID labeling the particular state of the metadata for the search scope, guaranteed to change only when the metadata of the scope changes.
  • A CollectionTerminatorType base element, which resolves to one the following elements, 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 of which represents an 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 a GetSearchMetadata response is as follows. Elements that are derived from their base element are in parenthesis:

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

XML Schema

<operation name="GetSearchMetadata">
   <input message="tns:GetSearchMetadataRequest"/>
   <output message="tns:GetSearchMetadataResponse"/>
   <fault message="tns:FaultResponse" name="GeneralError"/>
</operation>