org.apache.xindice.core.indexer
Interface Indexer
- All Superinterfaces:
- Configurable, DBObject, Named
- All Known Implementing Classes:
- NameIndexer, ValueIndexer
- public interface Indexer
- extends Named, DBObject, Configurable
Indexer is the abstract indexing interface for Xindice. An Indexer
object is implemented in order to retrieve and manage indexes.
Any number of Indexer instances may be associated with a single
Collection. The type of Indexer utilized by a query depends on
the 'Style' of Indexer and the type of QueryResolver that is being
used to performt he query. Currently, Xindice only internally
supports one kind of Indexer: 'XPath'.
Method Summary |
void |
add(java.lang.String value,
Key key,
int pos,
int len,
short elemID,
short attrID)
add adds a Document to the Indexer. |
void |
flush()
flush forcefully flushes any unwritten buffers to disk. |
java.lang.String |
getIndexStyle()
getIndexStyle returns the Index style. |
java.lang.String |
getPattern()
getPattern returns the pattern recognized by this Indexer. |
IndexMatch[] |
queryMatches(IndexQuery query)
queryMatches retrieves a set of MatchEntry instances that match
the supplied query. |
void |
remove(java.lang.String value,
Key key,
int pos,
int len,
short elemID,
short attrID)
remove removes all references to the specified Key from the Indexer. |
void |
setCollection(Collection collection)
setCollection tells the Indexer who its parent is. |
Methods inherited from interface org.apache.xindice.util.Named |
getName |
STYLE_NODENAME
public static final java.lang.String STYLE_NODENAME
STYLE_NODEVALUE
public static final java.lang.String STYLE_NODEVALUE
STYLE_FULLTEXT
public static final java.lang.String STYLE_FULLTEXT
setCollection
public void setCollection(Collection collection)
- setCollection tells the Indexer who its parent is.
- Parameters:
collection
- The owner Collection
getIndexStyle
public java.lang.String getIndexStyle()
- getIndexStyle returns the Index style. Different query languages
will need to draw from different indexing styles. For example, A
query that is written in quilt will require XPath indexing.
- Returns:
- The index style
getPattern
public java.lang.String getPattern()
- getPattern returns the pattern recognized by this Indexer. Patterns
must be in the form of (elem|*)[@(attr|*)] to tell the IndexManager
which element types to send to it, so for example:
contact@name Indexes all contacts by name attribute
memo Indexes the text of all memo elements
contact@* Indexes all contact attributes
*@name Indexes the name attribute for all elements
* Indexes the text of all elements
*@* Indexes all attributes of all elements
These patterns are used by the IndexManager when handling SAX events.
All events that match the specified pattern will result in an add or
remove call to the Indexer.
- Returns:
- The Pattern used
remove
public void remove(java.lang.String value,
Key key,
int pos,
int len,
short elemID,
short attrID)
throws DBException
- remove removes all references to the specified Key from the Indexer.
- Parameters:
value
- The value to removekey
- The Object IDpos
- The offset into the stream the Element occurs atlen
- The length of the substream for the ElementelemID
- The Element ID of the valueattrID
- The Attribute ID of the value (if any, else -1)
add
public void add(java.lang.String value,
Key key,
int pos,
int len,
short elemID,
short attrID)
throws DBException
- add adds a Document to the Indexer.
- Parameters:
value
- The value to removekey
- The Object IDpos
- The offset into the stream the Element occurs atlen
- The length of the substream for the ElementelemID
- The Element ID of the valueattrID
- The Attribute ID of the value (if any, else -1)
queryMatches
public IndexMatch[] queryMatches(IndexQuery query)
throws DBException
- queryMatches retrieves a set of MatchEntry instances that match
the supplied query. The matches are then used by the QueryEngine
in co-sequential processing. If this indexer doesn't support the
passed value, it should return 'null'. If no matches are found,
it should return an empty set. queryMatches will typically be
used in XPath processing.
- Parameters:
query
- The IndexQuery to use- Returns:
- The resulting matches
flush
public void flush()
throws DBException
- flush forcefully flushes any unwritten buffers to disk.
Copyright (c) 1999-2001 The Apache Software Foundation