org.exist.storage
Class TextSearchEngine

java.lang.Object
  extended byjava.util.Observable
      extended byorg.exist.storage.TextSearchEngine
Direct Known Subclasses:
NativeTextEngine

public abstract class TextSearchEngine
extends java.util.Observable

This is the base class for all classes providing access to the fulltext index. The class has methods to add text and attribute nodes to the fulltext index, or to search for nodes matching selected search terms.

Author:
wolf

Field Summary
static java.lang.String PROPERTY_INDEX_NUMBERS
           
static java.lang.String PROPERTY_STEM
           
static java.lang.String PROPERTY_STORE_TERM_FREQUENCY
           
static java.lang.String PROPERTY_TOKENIZER
           
 
Constructor Summary
TextSearchEngine(DBBroker broker, Configuration conf)
          Construct a new instance and configure it.
 
Method Summary
abstract  boolean close()
           
abstract  void dropIndex(Collection collection)
          Remove index entries for an entire collection.
abstract  void dropIndex(DocumentImpl doc)
          Remove all index entries for the given document.
abstract  void flush()
           
abstract  java.lang.String[] getIndexTerms(DocumentSet docs, TermMatcher matcher)
           
abstract  NodeSet getNodes(XQueryContext context, DocumentSet docs, NodeSet contextSet, TermMatcher matcher, java.lang.CharSequence startTerm)
           
 NodeSet getNodesContaining(XQueryContext context, DocumentSet docs, NodeSet contextSet, java.lang.String expr, int type)
           
abstract  NodeSet getNodesContaining(XQueryContext context, DocumentSet docs, NodeSet contextSet, java.lang.String expr, int type, boolean matchAll)
          For each of the given search terms and each of the documents in the document set, return a node-set of matching nodes.
 Tokenizer getTokenizer()
          Returns the Tokenizer used for tokenizing strings into words.
 int getTrackMatches()
           
abstract  void reindex(DocumentImpl oldDoc, StoredNode node)
          Reindex a document or node.
abstract  Occurrences[] scanIndexTerms(DocumentSet docs, NodeSet contextSet, java.lang.String start, java.lang.String end)
          Queries the fulltext index to retrieve information on indexed words contained in the index for the current collection.
 void setTrackMatches(int flags)
           
abstract  void storeAttribute(FulltextIndexSpec idx, AttrImpl text)
          Tokenize and index the given attribute node.
abstract  void storeText(FulltextIndexSpec indexSpec, StoredNode parent, java.lang.String text)
           
abstract  void storeText(FulltextIndexSpec idx, TextImpl text, boolean onetoken)
          Tokenize and index the given text node.
 
Methods inherited from class java.util.Observable
addObserver, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PROPERTY_INDEX_NUMBERS

public static java.lang.String PROPERTY_INDEX_NUMBERS

PROPERTY_STEM

public static java.lang.String PROPERTY_STEM

PROPERTY_STORE_TERM_FREQUENCY

public static java.lang.String PROPERTY_STORE_TERM_FREQUENCY

PROPERTY_TOKENIZER

public static java.lang.String PROPERTY_TOKENIZER
Constructor Detail

TextSearchEngine

public TextSearchEngine(DBBroker broker,
                        Configuration conf)
Construct a new instance and configure it.

Parameters:
broker -
conf -
Method Detail

getTokenizer

public Tokenizer getTokenizer()
Returns the Tokenizer used for tokenizing strings into words.

Returns:
tokenizer

storeText

public abstract void storeText(FulltextIndexSpec idx,
                               TextImpl text,
                               boolean onetoken)
Tokenize and index the given text node.

Parameters:
idx -
text -

storeText

public abstract void storeText(FulltextIndexSpec indexSpec,
                               StoredNode parent,
                               java.lang.String text)

storeAttribute

public abstract void storeAttribute(FulltextIndexSpec idx,
                                    AttrImpl text)
Tokenize and index the given attribute node.

Parameters:
idx -
text -

flush

public abstract void flush()

close

public abstract boolean close()
                       throws DBException
Throws:
DBException

getTrackMatches

public int getTrackMatches()

setTrackMatches

public void setTrackMatches(int flags)

getNodesContaining

public NodeSet getNodesContaining(XQueryContext context,
                                  DocumentSet docs,
                                  NodeSet contextSet,
                                  java.lang.String expr,
                                  int type)
                           throws TerminatedException
Throws:
TerminatedException

getNodesContaining

public abstract NodeSet getNodesContaining(XQueryContext context,
                                           DocumentSet docs,
                                           NodeSet contextSet,
                                           java.lang.String expr,
                                           int type,
                                           boolean matchAll)
                                    throws TerminatedException
For each of the given search terms and each of the documents in the document set, return a node-set of matching nodes. The type-argument indicates if search terms should be compared using a regular expression. Valid values are DBBroker.MATCH_EXACT or DBBroker.MATCH_REGEXP.

Throws:
TerminatedException

getNodes

public abstract NodeSet getNodes(XQueryContext context,
                                 DocumentSet docs,
                                 NodeSet contextSet,
                                 TermMatcher matcher,
                                 java.lang.CharSequence startTerm)
                          throws TerminatedException
Throws:
TerminatedException

scanIndexTerms

public abstract Occurrences[] scanIndexTerms(DocumentSet docs,
                                             NodeSet contextSet,
                                             java.lang.String start,
                                             java.lang.String end)
                                      throws PermissionDeniedException
Queries the fulltext index to retrieve information on indexed words contained in the index for the current collection. Returns a list of Occurrences for all words contained in the index. If param end is null, all words starting with the string sequence param start are returned. Otherwise, the method returns all words that come after start and before end in lexical order.

Throws:
PermissionDeniedException

getIndexTerms

public abstract java.lang.String[] getIndexTerms(DocumentSet docs,
                                                 TermMatcher matcher)

dropIndex

public abstract void dropIndex(Collection collection)
Remove index entries for an entire collection.

Parameters:
collection -

dropIndex

public abstract void dropIndex(DocumentImpl doc)
Remove all index entries for the given document.

Parameters:
doc -

reindex

public abstract void reindex(DocumentImpl oldDoc,
                             StoredNode node)
Reindex a document or node. If node is null, all levels of the document tree starting with DocumentImpl.reindexRequired() will be reindexed.

Parameters:
oldDoc -
node -


Copyright (C) Wolfgang Meier. All rights reserved.