Package org.apache.lucene.search
Class AutomatonQuery
java.lang.Object
org.apache.lucene.search.Query
org.apache.lucene.search.MultiTermQuery
org.apache.lucene.search.AutomatonQuery
- All Implemented Interfaces:
Cloneable
- Direct Known Subclasses:
RegexpQuery
,WildcardQuery
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.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.lucene.search.MultiTermQuery
MultiTermQuery.ConstantScoreAutoRewrite, MultiTermQuery.RewriteMethod, MultiTermQuery.TopTermsBoostOnlyBooleanQueryRewrite, MultiTermQuery.TopTermsScoringBooleanQueryRewrite
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final Automaton
the automaton to match index terms againstprotected final CompiledAutomaton
protected final Term
term containing the field, and possibly some pattern structureFields 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
ConstructorsConstructorDescriptionAutomatonQuery
(Term term, Automaton automaton) Create a new AutomatonQuery from anAutomaton
. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Returns the automaton used to create this queryprotected TermsEnum
getTermsEnum
(Terms terms, AttributeSource atts) Construct the enumeration to be used, expanding the pattern term.int
hashCode()
Prints a query to a string, withfield
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
-
Field Details
-
automaton
the automaton to match index terms against -
compiled
-
term
term containing the field, and possibly some pattern structure
-
-
Constructor Details
-
AutomatonQuery
Create a new AutomatonQuery from anAutomaton
.- 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 Details
-
getTermsEnum
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 returnTermsEnum.EMPTY
if no terms match). The TermsEnum must already be positioned to the first matching term. The givenAttributeSource
is passed by theMultiTermQuery.RewriteMethod
to provide attributes, the rewrite method uses to inform about e.g. maximum competitive boosts. This is currently only used byTopTermsRewrite
- Specified by:
getTermsEnum
in classMultiTermQuery
- Throws:
IOException
-
hashCode
public int hashCode()- Overrides:
hashCode
in classMultiTermQuery
-
equals
- Overrides:
equals
in classMultiTermQuery
-
toString
Description copied from class:Query
Prints a query to a string, withfield
assumed to be the default field and omitted. -
getAutomaton
Returns the automaton used to create this query
-