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,
IndexReader reader) |
NearSpansOrdered(SpanNearQuery spanNearQuery,
IndexReader reader,
boolean collectPayloads) |
| Modifier and Type | Method and Description |
|---|---|
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, IndexReader reader) throws IOException
IOExceptionpublic NearSpansOrdered(SpanNearQuery spanNearQuery, IndexReader reader, 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 SpansIOExceptionpublic boolean isPayloadAvailable()
SpansSpans.next().isPayloadAvailable in class Spanspublic boolean next()
throws IOException
Spansnext in class SpansIOExceptionpublic boolean skipTo(int target)
throws IOException
SpansReturns 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 SpansIOException