public class NearSpansOrdered extends Spans
The formed spans only contains minimum slop matches.
The matching slop is computed from the distance(s) between
the non overlapping matching Spans.
Successive matches are always formed from the successive Spans
of the SpanNearQuery.
The formed spans may contain overlaps when the slop is at least 1. For example, when querying using
t1 t2 t3with slop at least 1, the fragment:
t1 t2 t1 t3 t2 t3matches twice:
t1 t2 .. t3
t1 .. t2 t3Expert: Only public for subclassing. Most implementations should not need this class
| Constructor and Description |
|---|
NearSpansOrdered(SpanNearQuery spanNearQuery,
AtomicReaderContext context,
Bits acceptDocs,
Map<Term,TermContext> termContexts) |
NearSpansOrdered(SpanNearQuery spanNearQuery,
AtomicReaderContext context,
Bits acceptDocs,
Map<Term,TermContext> termContexts,
boolean collectPayloads) |
| Modifier and Type | Method and Description |
|---|---|
long |
cost()
Returns the estimated cost of this spans.
|
int |
doc()
Returns the document number of the current match.
|
int |
end()
Returns the end position of the current match.
|
Collection<byte[]> |
getPayload()
Returns the payload data for the current span.
|
Spans[] |
getSubSpans() |
boolean |
isPayloadAvailable()
Checks if a payload can be loaded at this position.
|
boolean |
next()
Move to the next match, returning true iff any such exists.
|
boolean |
skipTo(int target)
Skips to the first match beyond the current, whose document number is
greater than or equal to target.
|
int |
start()
Returns the start position of the current match.
|
String |
toString() |
public NearSpansOrdered(SpanNearQuery spanNearQuery, AtomicReaderContext context, Bits acceptDocs, Map<Term,TermContext> termContexts) throws IOException
IOExceptionpublic NearSpansOrdered(SpanNearQuery spanNearQuery, AtomicReaderContext context, Bits acceptDocs, Map<Term,TermContext> termContexts, boolean collectPayloads) throws IOException
IOExceptionpublic int doc()
Spanspublic int start()
Spanspublic int end()
Spanspublic Spans[] getSubSpans()
public Collection<byte[]> getPayload() throws IOException
SpansSpans.next() is called for
the first time.
This method must not be called more than once after each call
of Spans.next(). However, most payloads are loaded lazily,
so if the payload data for the current position is not needed,
this method may not be called at all for performance reasons. An ordered
SpanQuery does not lazy load, so if you have payloads in your index and
you do not want ordered SpanNearQuerys to collect payloads, you can
disable collection with a constructor option.getPayload in class SpansIOException - if there is a low-level I/O errorpublic boolean isPayloadAvailable()
SpansSpans.next().isPayloadAvailable in class Spanspublic long cost()
SpansThis is generally an upper bound of the number of documents this iterator might match, but may be a rough heuristic, hardcoded value, or otherwise completely inaccurate.
public boolean next()
throws IOException
Spansnext in class SpansIOExceptionpublic boolean skipTo(int target)
throws IOException
SpansThe behavior of this method is undefined when called with
target ≤ current, or after the iterator has exhausted.
Both cases may result in unpredicted behavior.
Returns true iff there is such a match.
Behaves as if written:
boolean skipTo(int target) {
do {
if (!next())
return false;
} while (target > doc());
return true;
}
Most implementations are considerably more efficient than that.skipTo in class SpansIOExceptionCopyright © 2000-2013 Apache Software Foundation. All Rights Reserved.