## org.apache.lucene.search.spans
Class NearSpansOrdered

    java.lang.Object
      org.apache.lucene.search.spans.Spans
          org.apache.lucene.search.spans.NearSpansOrdered

    public class NearSpansOrdered

extends Spans

A Spans that is formed from the ordered subspans of a SpanNearQuery where the subspans do not overlap and have a maximum slop between them.

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 t3

with slop at least 1, the fragment:

    t1 t2 t1 t3 t2 t3

matches twice:

    t1 t2 .. t3

          t1 .. t2 t3

Expert: Only public for subclassing. Most implementations should not need this class

Constructor Summary
`NearSpansOrdered(SpanNearQuery spanNearQuery, AtomicReaderContext context, Bits acceptDocs, Map<Term,TermContext> termContexts)`
`NearSpansOrdered(SpanNearQuery spanNearQuery, AtomicReaderContext context, Bits acceptDocs, Map<Term,TermContext> termContexts, boolean collectPayloads)`

Method Summary
`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()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### NearSpansOrdered

    public NearSpansOrdered(SpanNearQuery spanNearQuery,
                            AtomicReaderContext context,
                            Bits acceptDocs,
                            Map<Term,TermContext> termContexts)
                     throws IOException

Throws:
  `IOException`

### NearSpansOrdered

    public NearSpansOrdered(SpanNearQuery spanNearQuery,
                            AtomicReaderContext context,
                            Bits acceptDocs,
                            Map<Term,TermContext> termContexts,
                            boolean collectPayloads)
                     throws IOException

Throws:
  `IOException`

Method Detail

### doc

    public int doc()

  Description copied from class: `Spans`
  Returns the document number of the current match. Initially invalid.

  Specified by:
    `doc` in class `Spans`

### start

    public int start()

  Description copied from class: `Spans`
  Returns the start position of the current match. Initially invalid.

  Specified by:
    `start` in class `Spans`

### end

    public int end()

  Description copied from class: `Spans`
  Returns the end position of the current match. Initially invalid.

  Specified by:
    `end` in class `Spans`

### getSubSpans

    public Spans[] getSubSpans()

### getPayload

    public Collection<byte[]> getPayload()
                                  throws IOException

  Description copied from class: `Spans`
  Returns the payload data for the current span. This is invalid until `Spans.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.
  Note that the return type is a collection, thus the ordering should not be relied upon.

  Specified by:
    `getPayload` in class `Spans`
  Returns:
    a List of byte arrays containing the data of this payload, otherwise null if isPayloadAvailable is false
  Throws:
    `IOException` - if there is a low-level I/O error

### isPayloadAvailable

    public boolean isPayloadAvailable()

  Description copied from class: `Spans`
  Checks if a payload can be loaded at this position.

  Payloads can only be loaded once per call to `Spans.next()`.

  Specified by:
    `isPayloadAvailable` in class `Spans`
  Returns:
    true if there is a payload available at this position that can be loaded

### cost

    public long cost()

  Description copied from class: `Spans`
  Returns the estimated cost of this spans.

  This 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.

  Specified by:
    `cost` in class `Spans`

### next

    public boolean next()
                 throws IOException

  Description copied from class: `Spans`
  Move to the next match, returning true iff any such exists.

  Specified by:
    `next` in class `Spans`
  Throws:
    `IOException`

### skipTo

    public boolean skipTo(int target)
                   throws IOException

  Description copied from class: `Spans`
  Skips to the first match beyond the current, whose document number is greater than or equal to target.

  The 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.

  Specified by:
    `skipTo` in class `Spans`
  Throws:
    `IOException`

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.