public final class OrdsSegmentTermsEnum extends BaseTermsEnum
Modifier and Type | Class and Description |
---|---|
private static class |
OrdsSegmentTermsEnum.InputOutput
Holds a single input (IntsRef) + output pair.
|
TermsEnum.SeekStatus
Modifier and Type | Field and Description |
---|---|
private FST.Arc<FSTOrdsOutputs.Output> |
arc |
private FST.Arc<FSTOrdsOutputs.Output>[] |
arcs |
(package private) OrdsSegmentTermsEnumFrame |
currentFrame |
private boolean |
eof |
(package private) OrdsFieldReader |
fr |
private FST.BytesReader |
fstReader |
(package private) IndexInput |
in |
(package private) boolean |
positioned |
private ByteArrayDataInput |
scratchReader |
private OrdsSegmentTermsEnumFrame[] |
stack |
private OrdsSegmentTermsEnumFrame |
staticFrame |
private int |
targetBeforeCurrentLength |
(package private) BytesRefBuilder |
term |
(package private) boolean |
termExists |
private int |
validIndexPrefix |
Constructor and Description |
---|
OrdsSegmentTermsEnum(OrdsFieldReader 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<FSTOrdsOutputs.Output> |
getArc(int ord) |
private OrdsSegmentTermsEnum.InputOutput |
getByOutput(long targetOrd)
Specialized getByOutput that can understand the ranges (startOrd to endOrd) we use here, not just startOrd.
|
private OrdsSegmentTermsEnumFrame |
getFrame(int ord) |
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) OrdsSegmentTermsEnumFrame |
pushFrame(FST.Arc<FSTOrdsOutputs.Output> arc,
FSTOrdsOutputs.Output frameData,
int length) |
(package private) OrdsSegmentTermsEnumFrame |
pushFrame(FST.Arc<FSTOrdsOutputs.Output> arc,
long fp,
int length,
long termOrd) |
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.
|
void |
seekExact(BytesRef target,
TermState otherState)
Expert: Seeks a specific position by
TermState previously obtained
from TermsEnum.termState() . |
void |
seekExact(long targetOrd)
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).
|
attributes
IndexInput in
private OrdsSegmentTermsEnumFrame[] stack
private final OrdsSegmentTermsEnumFrame staticFrame
OrdsSegmentTermsEnumFrame currentFrame
boolean termExists
final OrdsFieldReader 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<FSTOrdsOutputs.Output>[] arcs
boolean positioned
private final FST.Arc<FSTOrdsOutputs.Output> arc
OrdsSegmentTermsEnum(OrdsFieldReader fr) throws java.io.IOException
java.io.IOException
void initIndexInput()
private OrdsSegmentTermsEnumFrame getFrame(int ord) throws java.io.IOException
java.io.IOException
private FST.Arc<FSTOrdsOutputs.Output> getArc(int ord)
OrdsSegmentTermsEnumFrame pushFrame(FST.Arc<FSTOrdsOutputs.Output> arc, FSTOrdsOutputs.Output frameData, int length) throws java.io.IOException
java.io.IOException
OrdsSegmentTermsEnumFrame pushFrame(FST.Arc<FSTOrdsOutputs.Output> arc, long fp, int length, long termOrd) throws java.io.IOException
java.io.IOException
private boolean clearEOF()
private boolean setEOF()
static java.lang.String brToString(BytesRef b)
public boolean seekExact(BytesRef target) throws java.io.IOException
TermsEnum
TermsEnum.seekCeil(org.apache.lucene.util.BytesRef)
.
seekExact
in class BaseTermsEnum
java.io.IOException
public TermsEnum.SeekStatus seekCeil(BytesRef target) throws java.io.IOException
TermsEnum
private void printSeekState(java.io.PrintStream out) throws java.io.IOException
java.io.IOException
public BytesRef next() throws java.io.IOException
BytesRefIterator
BytesRef
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()
TermsEnum
public long ord()
TermsEnum
UnsupportedOperationException
). Do not call this
when the enum is unpositioned.public int docFreq() throws java.io.IOException
TermsEnum
TermsEnum.SeekStatus.END
.public long totalTermFreq() throws java.io.IOException
TermsEnum
totalTermFreq
in class TermsEnum
java.io.IOException
public PostingsEnum postings(PostingsEnum reuse, int flags) throws java.io.IOException
TermsEnum
PostingsEnum
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 TermsEnum
reuse
- pass a prior PostingsEnum for possible reuseflags
- specifies which optional per-document values
you require; see PostingsEnum.FREQS
java.io.IOException
public ImpactsEnum impacts(int flags) throws java.io.IOException
TermsEnum
ImpactsEnum
.impacts
in class TermsEnum
java.io.IOException
TermsEnum.postings(PostingsEnum, int)
public void seekExact(BytesRef target, TermState otherState)
TermsEnum
TermState
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 BaseTermsEnum
target
- the term the TermState corresponds tootherState
- the TermState
public 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 BaseTermsEnum
java.io.IOException
TermState
,
TermsEnum.seekExact(BytesRef, TermState)
public void seekExact(long targetOrd) throws java.io.IOException
TermsEnum
TermsEnum.ord()
. The target ord
may be before or after the current ord, and must be
within bounds.public java.lang.String toString()
toString
in class java.lang.Object
private OrdsSegmentTermsEnum.InputOutput getByOutput(long targetOrd) throws java.io.IOException
java.io.IOException