org.apache.lucene.search
Class AutomatonQuery

java.lang.Object
  extended by org.apache.lucene.search.Query
      extended by org.apache.lucene.search.MultiTermQuery
          extended by org.apache.lucene.search.AutomatonQuery
All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
RegexpQuery, WildcardQuery

public class AutomatonQuery
extends MultiTermQuery

A Query that will match terms against a finite-state machine.

This query will match documents that contain terms accepted by a given finite-state machine. The automaton can be constructed with the org.apache.lucene.util.automaton API. Alternatively, it can be created from a regular expression with RegexpQuery or from the standard Lucene wildcard syntax with WildcardQuery.

When the query is executed, it will create an equivalent DFA of the finite-state machine, and will enumerate the term dictionary in an intelligent way to reduce the number of comparisons. For example: the regular expression of [dl]og? will make approximately four comparisons: do, dog, lo, and log.

WARNING: This API is experimental and might change in incompatible ways in the next release.

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.lucene.search.MultiTermQuery
MultiTermQuery.ConstantScoreAutoRewrite, MultiTermQuery.RewriteMethod, MultiTermQuery.TopTermsBoostOnlyBooleanQueryRewrite, MultiTermQuery.TopTermsScoringBooleanQueryRewrite
 
Field Summary
protected  Automaton automaton
          the automaton to match index terms against
protected  CompiledAutomaton compiled
           
protected  Term term
          term containing the field, and possibly some pattern structure
 
Fields inherited from class org.apache.lucene.search.MultiTermQuery
CONSTANT_SCORE_AUTO_REWRITE_DEFAULT, CONSTANT_SCORE_BOOLEAN_QUERY_REWRITE, CONSTANT_SCORE_FILTER_REWRITE, field, rewriteMethod, SCORING_BOOLEAN_QUERY_REWRITE
 
Constructor Summary
AutomatonQuery(Term term, Automaton automaton)
          Create a new AutomatonQuery from an Automaton.
 
Method Summary
 boolean equals(Object obj)
           
protected  TermsEnum getTermsEnum(Terms terms, AttributeSource atts)
          Construct the enumeration to be used, expanding the pattern term.
 int hashCode()
           
 String toString(String field)
          Prints a query to a string, with field assumed to be the default field and omitted.
 
Methods inherited from class org.apache.lucene.search.MultiTermQuery
getField, getRewriteMethod, getTermsEnum, rewrite, setRewriteMethod
 
Methods inherited from class org.apache.lucene.search.Query
clone, createWeight, extractTerms, getBoost, setBoost, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

automaton

protected final Automaton automaton
the automaton to match index terms against


compiled

protected final CompiledAutomaton compiled

term

protected final Term term
term containing the field, and possibly some pattern structure

Constructor Detail

AutomatonQuery

public AutomatonQuery(Term term,
                      Automaton automaton)
Create a new AutomatonQuery from an Automaton.

Parameters:
term - Term containing field and possibly some pattern structure. The term text is ignored.
automaton - Automaton to run, terms that are accepted are considered a match.
Method Detail

getTermsEnum

protected TermsEnum getTermsEnum(Terms terms,
                                 AttributeSource atts)
                          throws IOException
Description copied from class: MultiTermQuery
Construct the enumeration to be used, expanding the pattern term. This method should only be called if the field exists (ie, implementations can assume the field does exist). This method should not return null (should instead return TermsEnum.EMPTY if no terms match). The TermsEnum must already be positioned to the first matching term. The given AttributeSource is passed by the MultiTermQuery.RewriteMethod to provide attributes, the rewrite method uses to inform about e.g. maximum competitive boosts. This is currently only used by TopTermsRewrite

Specified by:
getTermsEnum in class MultiTermQuery
Throws:
IOException

hashCode

public int hashCode()
Overrides:
hashCode in class MultiTermQuery

equals

public boolean equals(Object obj)
Overrides:
equals in class MultiTermQuery

toString

public String toString(String field)
Description copied from class: Query
Prints a query to a string, with field assumed to be the default field and omitted.

Specified by:
toString in class Query


Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.