Package org.apache.uima.search

# Interface IndexBuildSpecification

All Superinterfaces:
  `Serializable`, `XMLizable`

All Known Implementing Classes:
  `IndexBuildSpecification_impl`

public interface IndexBuildSpecification extends XMLizable, Serializable
Determines how a `CAS` get indexed with a UIMA-compliant search engine. This is done by providing rules that describe how different types of Annotations in the CAS should be indexed.

This object implements the `XMLizable` interface and can be parsed from an XML representation. The XML representation is as follows:

       <indexBuildSpecification>
         <indexBuildItem>
           <name> CAS_TYPE_NAME | CAS_TYPE_NAMESPACE_WILDCARD </name>
           <indexRule>
             <style name="NAME">
               <attribute name="NAME" value="STRING"/>
               ...
               [<attributeMappings>
                 <mapping>
                   <feature> STRING </feature>
                   <indexName> STRING </indexName>
                 </mapping>
                 ...
               </attributeMappings>]
             </style>
             ...
           </indexRule>
           [<filter syntax="NAME"> FILTER_EXPRESSION </filter>]
         </indexBuildItem>
         ...
       </indexBuildSpecification>

The `...` indicates repeating elements of the same type - for example an `indexBuildSpecification` may have multiple `indexBuildItem`s. The square brackets indicate optionality, hence `filter` is an optional element of `indexRule`.

- CAS_TYPE_NAME is any valid type name in the CAS.
- CAS_TYPE_NAMESPACE_WILDCARD is a CAS type namespace followed by `.*`, for example `org.apache.myproject.*`
- NAME is a string that must be taken from the set of names recognized by the particular indexer implementation. Some standard names are defined in the `Style` and `Filter` classes.
- FILTER_EXPRESSION is a string whose meaning is determined by the value of the `syntax` attribute on the `filter` element. See `Filter` for details.
- STRING can be any string (although in some contexts this must match a valid CAS feature name). See `Attribute` and `Mapping` for details.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `IndexBuildItem[]`
  `getIndexBuildItems()`
  Gets the `IndexBuildItem` objects that comprise this index build specification.
  `void`
  `setIndexBuildItems(IndexBuildItem[] aItems)`
  Sets the `IndexBuildItem` objects that comprise this index build specification.

  ### Methods inherited from interface org.apache.uima.util.XMLizable

  `buildFromXMLElement, buildFromXMLElement, toXML, toXML, toXML, toXML`

- ## Method Details

  - ### getIndexBuildItems

    IndexBuildItem[] getIndexBuildItems()
    Gets the `IndexBuildItem` objects that comprise this index build specification. Each of these identifies an annotation type and describes how it should be indexed.
    Returns:
      the build items

  - ### setIndexBuildItems

    void setIndexBuildItems(IndexBuildItem[] aItems)
    Sets the `IndexBuildItem` objects that comprise this index build specification. Each of these identifies an annotation type and describes how it should be indexed.
    Parameters:
      `aItems` - the build items