public abstract class TwoPhaseIterator extends Object
Scorer.twoPhaseIterator()
to expose an approximation of a DocIdSetIterator
.
When the approximation()
's
DocIdSetIterator.nextDoc()
or DocIdSetIterator.advance(int)
return, matches()
needs to be checked in order to know whether the
returned doc ID actually matches.Modifier and Type | Field and Description |
---|---|
protected DocIdSetIterator |
approximation |
Modifier | Constructor and Description |
---|---|
protected |
TwoPhaseIterator(DocIdSetIterator approximation)
Takes the approximation to be returned by
approximation . |
Modifier and Type | Method and Description |
---|---|
DocIdSetIterator |
approximation()
Return an approximation.
|
static DocIdSetIterator |
asDocIdSetIterator(TwoPhaseIterator twoPhaseIterator)
Return a
DocIdSetIterator view of the provided
TwoPhaseIterator . |
abstract float |
matchCost()
An estimate of the expected cost to determine that a single document
matches() . |
abstract boolean |
matches()
Return whether the current doc ID that
approximation() is on matches. |
static TwoPhaseIterator |
unwrap(DocIdSetIterator iterator)
If the given
DocIdSetIterator has been created with
asDocIdSetIterator(org.apache.lucene.search.TwoPhaseIterator) , then this will return the wrapped
TwoPhaseIterator . |
protected final DocIdSetIterator approximation
protected TwoPhaseIterator(DocIdSetIterator approximation)
approximation
. Not null.public static DocIdSetIterator asDocIdSetIterator(TwoPhaseIterator twoPhaseIterator)
DocIdSetIterator
view of the provided
TwoPhaseIterator
.public static TwoPhaseIterator unwrap(DocIdSetIterator iterator)
DocIdSetIterator
has been created with
asDocIdSetIterator(org.apache.lucene.search.TwoPhaseIterator)
, then this will return the wrapped
TwoPhaseIterator
. Otherwise this returns null
.public DocIdSetIterator approximation()
DocIdSetIterator
is a
superset of the matching documents, and each match needs to be confirmed
with matches()
in order to know whether it matches or not.public abstract boolean matches() throws IOException
approximation()
is on matches. This
method should only be called when the iterator is positioned -- ie. not
when DocIdSetIterator.docID()
is -1
or
DocIdSetIterator.NO_MORE_DOCS
-- and at most once.IOException
public abstract float matchCost()
matches()
.
This can be called before iterating the documents of approximation()
.
Returns an expected cost in number of simple operations like addition, multiplication,
comparing two numbers and indexing an array.
The returned value must be positive.Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.