## org.exist.storage
Class TextSearchEngine

    java.lang.Object
      java.util.Observable
          org.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.