public final class IDVersionSegmentTermsEnum extends BaseTermsEnum
seekExact(BytesRef, long) for
optimistic-concurrency, and also getVersion() to get the
version of the currently seek'd term.TermsEnum.SeekStatus| Modifier and Type | Field and Description |
|---|---|
private FST.Arc<PairOutputs.Pair<BytesRef,java.lang.Long>>[] |
arcs |
(package private) IDVersionSegmentTermsEnumFrame |
currentFrame |
private boolean |
eof |
(package private) VersionFieldReader |
fr |
private FST.BytesReader |
fstReader |
(package private) IndexInput |
in |
private ByteArrayDataInput |
scratchReader |
private IDVersionSegmentTermsEnumFrame[] |
stack |
private IDVersionSegmentTermsEnumFrame |
staticFrame |
private int |
targetBeforeCurrentLength |
(package private) BytesRefBuilder |
term |
(package private) boolean |
termExists |
private int |
validIndexPrefix |
| Constructor and Description |
|---|
IDVersionSegmentTermsEnum(VersionFieldReader fr) |
| Modifier and Type | Method and Description |
|---|---|
(package private) static java.lang.String |
brToString(BytesRef b) |
private boolean |
clearEOF() |
int |
docFreq()
Returns the number of documents containing the current
term.
|
private FST.Arc<PairOutputs.Pair<BytesRef,java.lang.Long>> |
getArc(int ord) |
private IDVersionSegmentTermsEnumFrame |
getFrame(int ord) |
long |
getVersion()
Get the version of the currently seek'd term; only valid if we are
positioned.
|
ImpactsEnum |
impacts(int flags)
Return a
ImpactsEnum. |
(package private) void |
initIndexInput() |
BytesRef |
next()
Increments the iteration to the next
BytesRef in the iterator. |
long |
ord()
Returns ordinal position for current term.
|
PostingsEnum |
postings(PostingsEnum reuse,
int flags)
Get
PostingsEnum for the current term, with
control over whether freqs, positions, offsets or payloads
are required. |
private void |
printSeekState(java.io.PrintStream out) |
(package private) IDVersionSegmentTermsEnumFrame |
pushFrame(FST.Arc<PairOutputs.Pair<BytesRef,java.lang.Long>> arc,
long fp,
int length) |
(package private) IDVersionSegmentTermsEnumFrame |
pushFrame(FST.Arc<PairOutputs.Pair<BytesRef,java.lang.Long>> arc,
PairOutputs.Pair<BytesRef,java.lang.Long> frameData,
int length) |
TermsEnum.SeekStatus |
seekCeil(BytesRef target)
Seeks to the specified term, if it exists, or to the
next (ceiling) term.
|
boolean |
seekExact(BytesRef target)
Attempts to seek to the exact term, returning true if the term is found.
|
boolean |
seekExact(BytesRef target,
long minIDVersion)
Optimized version of
seekExact(BytesRef) that can
sometimes fail-fast if the version indexed with the requested ID
is less than the specified minIDVersion. |
void |
seekExact(BytesRef target,
TermState otherState)
Expert: Seeks a specific position by
TermState previously obtained
from TermsEnum.termState(). |
void |
seekExact(long ord)
Seeks to the specified term by ordinal (position) as
previously returned by
TermsEnum.ord(). |
private boolean |
setEOF() |
BytesRef |
term()
Returns current term.
|
TermState |
termState()
Expert: Returns the TermsEnums internal state to position the TermsEnum
without re-seeking the term dictionary.
|
java.lang.String |
toString() |
long |
totalTermFreq()
Returns the total number of occurrences of this term
across all documents (the sum of the freq() for each
doc that has this term).
|
attributesIndexInput in
private IDVersionSegmentTermsEnumFrame[] stack
private final IDVersionSegmentTermsEnumFrame staticFrame
IDVersionSegmentTermsEnumFrame currentFrame
boolean termExists
final VersionFieldReader fr
private int targetBeforeCurrentLength
private final ByteArrayDataInput scratchReader
private int validIndexPrefix
private boolean eof
final BytesRefBuilder term
private final FST.BytesReader fstReader
private FST.Arc<PairOutputs.Pair<BytesRef,java.lang.Long>>[] arcs
IDVersionSegmentTermsEnum(VersionFieldReader fr) throws java.io.IOException
java.io.IOExceptionvoid initIndexInput()
private IDVersionSegmentTermsEnumFrame getFrame(int ord) throws java.io.IOException
java.io.IOExceptionprivate FST.Arc<PairOutputs.Pair<BytesRef,java.lang.Long>> getArc(int ord)
IDVersionSegmentTermsEnumFrame pushFrame(FST.Arc<PairOutputs.Pair<BytesRef,java.lang.Long>> arc, PairOutputs.Pair<BytesRef,java.lang.Long> frameData, int length) throws java.io.IOException
java.io.IOExceptionIDVersionSegmentTermsEnumFrame pushFrame(FST.Arc<PairOutputs.Pair<BytesRef,java.lang.Long>> arc, long fp, int length) throws java.io.IOException
java.io.IOExceptionprivate boolean clearEOF()
private boolean setEOF()
public boolean seekExact(BytesRef target) throws java.io.IOException
TermsEnumTermsEnum.seekCeil(org.apache.lucene.util.BytesRef).
seekExact in class BaseTermsEnumjava.io.IOExceptionstatic java.lang.String brToString(BytesRef b)
public long getVersion()
public boolean seekExact(BytesRef target, long minIDVersion) throws java.io.IOException
seekExact(BytesRef) that can
sometimes fail-fast if the version indexed with the requested ID
is less than the specified minIDVersion. Applications that index
a monotonically increasing global version with each document can
use this for fast optimistic concurrency.java.io.IOExceptionpublic TermsEnum.SeekStatus seekCeil(BytesRef target) throws java.io.IOException
TermsEnumprivate void printSeekState(java.io.PrintStream out)
throws java.io.IOException
java.io.IOExceptionpublic BytesRef next() throws java.io.IOException
BytesRefIteratorBytesRef in the iterator.
Returns the resulting BytesRef or null if the end of
the iterator is reached. The returned BytesRef may be re-used across calls
to next. After this method returns null, do not call it again: the results
are undefined.BytesRef in the iterator or null if
the end of the iterator is reached.java.io.IOException - If there is a low-level I/O error.public BytesRef term()
TermsEnumpublic int docFreq()
throws java.io.IOException
TermsEnumTermsEnum.SeekStatus.END.public long totalTermFreq()
throws java.io.IOException
TermsEnumtotalTermFreq in class TermsEnumjava.io.IOExceptionpublic PostingsEnum postings(PostingsEnum reuse, int flags) throws java.io.IOException
TermsEnumPostingsEnum for the current term, with
control over whether freqs, positions, offsets or payloads
are required. Do not call this when the enum is
unpositioned. This method will not return null.
NOTE: the returned iterator may return deleted documents, so
deleted documents have to be checked on top of the PostingsEnum.
postings in class TermsEnumreuse - pass a prior PostingsEnum for possible reuseflags - specifies which optional per-document values
you require; see PostingsEnum.FREQSjava.io.IOExceptionpublic ImpactsEnum impacts(int flags) throws java.io.IOException
TermsEnumImpactsEnum.impacts in class TermsEnumjava.io.IOExceptionTermsEnum.postings(PostingsEnum, int)public void seekExact(BytesRef target, TermState otherState)
TermsEnumTermState previously obtained
from TermsEnum.termState(). Callers should maintain the TermState to
use this method. Low-level implementations may position the TermsEnum
without re-seeking the term dictionary.
Seeking by TermState should only be used iff the state was obtained
from the same TermsEnum instance.
NOTE: Using this method with an incompatible TermState might leave
this TermsEnum in undefined state. On a segment level
TermState instances are compatible only iff the source and the
target TermsEnum operate on the same field. If operating on segment
level, TermState instances must not be used across segments.
NOTE: A seek by TermState might not restore the
AttributeSource's state. AttributeSource states must be
maintained separately if this method is used.
seekExact in class BaseTermsEnumtarget - the term the TermState corresponds tootherState - the TermStatepublic TermState termState() throws java.io.IOException
TermsEnum
NOTE: A seek by TermState might not capture the
AttributeSource's state. Callers must maintain the
AttributeSource states separately
termState in class BaseTermsEnumjava.io.IOExceptionTermState,
TermsEnum.seekExact(BytesRef, TermState)public void seekExact(long ord)
TermsEnumTermsEnum.ord(). The target ord
may be before or after the current ord, and must be
within bounds.public long ord()
TermsEnumUnsupportedOperationException). Do not call this
when the enum is unpositioned.public java.lang.String toString()
toString in class java.lang.Object