public class AutomatonTermsEnum extends FilteredTermsEnum
The algorithm is such:
The algorithm does not attempt to actually skip to the next string that is completely accepted. This is not possible when the language accepted by the FSM is not finite (i.e. * operator).
FilteredTermsEnum.AcceptStatus
TermsEnum.SeekStatus
actualTerm, tenum
Constructor and Description |
---|
AutomatonTermsEnum(TermsEnum tenum,
CompiledAutomaton compiled)
Construct an enumerator based upon an automaton, enumerating the specified
field, working on a supplied TermsEnum
|
Modifier and Type | Method and Description |
---|---|
protected FilteredTermsEnum.AcceptStatus |
accept(BytesRef term)
Returns true if the term matches the automaton.
|
protected BytesRef |
nextSeekTerm(BytesRef term)
On the first call to
FilteredTermsEnum.next() or if FilteredTermsEnum.accept(org.apache.lucene.util.BytesRef) returns
FilteredTermsEnum.AcceptStatus.YES_AND_SEEK or FilteredTermsEnum.AcceptStatus.NO_AND_SEEK ,
this method will be called to eventually seek the underlying TermsEnum
to a new position. |
attributes, docFreq, impacts, next, ord, postings, seekCeil, seekExact, seekExact, seekExact, setInitialSeekTerm, term, termState, totalTermFreq
public AutomatonTermsEnum(TermsEnum tenum, CompiledAutomaton compiled)
compiled
- CompiledAutomatonprotected FilteredTermsEnum.AcceptStatus accept(BytesRef term)
accept
in class FilteredTermsEnum
protected BytesRef nextSeekTerm(BytesRef term) throws IOException
FilteredTermsEnum
FilteredTermsEnum.next()
or if FilteredTermsEnum.accept(org.apache.lucene.util.BytesRef)
returns
FilteredTermsEnum.AcceptStatus.YES_AND_SEEK
or FilteredTermsEnum.AcceptStatus.NO_AND_SEEK
,
this method will be called to eventually seek the underlying TermsEnum
to a new position.
On the first call, currentTerm
will be null
, later
calls will provide the term the underlying enum is positioned at.
This method returns per default only one time the initial seek term
and then null
, so no repositioning is ever done.
Override this method, if you want a more sophisticated TermsEnum,
that repositions the iterator during enumeration.
If this method always returns null
the enum is empty.
Please note: This method should always provide a greater term than the last enumerated term, else the behaviour of this enum violates the contract for TermsEnums.
nextSeekTerm
in class FilteredTermsEnum
IOException
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.