Package org.apache.lucene.queries.spans

## Class FilterSpans

- java.lang.Object
- - org.apache.lucene.search.DocIdSetIterator
  - - org.apache.lucene.queries.spans.Spans
    - - org.apache.lucene.queries.spans.FilterSpans

-     public abstract class FilterSpans
      extends Spans

  A `Spans` implementation wrapping another spans instance, allowing to filter spans matches easily by implementing `accept(org.apache.lucene.queries.spans.Spans)`

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `FilterSpans.AcceptStatus` | Status returned from `accept(Spans)` that indicates whether a candidate match should be accepted, rejected, or rejected and move on to the next document.

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected Spans` | `in` | The wrapped spans instance.

    - ### Fields inherited from class org.apache.lucene.queries.spans.Spans

      `NO_MORE_POSITIONS`

    - ### Fields inherited from class org.apache.lucene.search.DocIdSetIterator

      `NO_MORE_DOCS`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `FilterSpans​(Spans in)` | Wrap the given `Spans`.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected abstract FilterSpans.AcceptStatus` | `accept​(Spans candidate)` | Returns YES if the candidate should be an accepted match, NO if it should not, and NO_MORE_IN_CURRENT_DOC if iteration should move on to the next document.
    `int` | `advance​(int target)` |
    `TwoPhaseIterator` | `asTwoPhaseIterator()` | Optional method: Return a `TwoPhaseIterator` view of this `Scorer`.
    `void` | `collect​(SpanCollector collector)` | Collect postings data from the leaves of the current Spans.
    `long` | `cost()` |
    `int` | `docID()` |
    `int` | `endPosition()` | Returns the end position for the current start position, or -1 when `Spans.nextStartPosition()` was not yet called on the current doc.
    `int` | `nextDoc()` |
    `int` | `nextStartPosition()` | Returns the next start position for the current doc.
    `float` | `positionsCost()` | Return an estimation of the cost of using the positions of this `Spans` for any single document, but only after `Spans.asTwoPhaseIterator()` returned `null`.
    `int` | `startPosition()` | Returns the start position in the current doc, or -1 when `Spans.nextStartPosition()` was not yet called on the current doc.
    `String` | `toString()` |
    `int` | `width()` | Return the width of the match, which is typically used to sloppy freq.

    - ### Methods inherited from class org.apache.lucene.queries.spans.Spans

      `doCurrentSpans, doStartCurrentDoc`

    - ### Methods inherited from class org.apache.lucene.search.DocIdSetIterator

      `all, empty, range, slowAdvance`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### in

          protected final Spans in

      The wrapped spans instance.

  - ### Constructor Detail

    - #### FilterSpans

          protected FilterSpans​(Spans in)

      Wrap the given `Spans`.

  - ### Method Detail

    - #### accept

          protected abstract FilterSpans.AcceptStatus accept​(Spans candidate)
                                                      throws IOException

      Returns YES if the candidate should be an accepted match, NO if it should not, and NO_MORE_IN_CURRENT_DOC if iteration should move on to the next document.
      Throws:
        `IOException`

    - #### nextDoc

          public final int nextDoc()
                            throws IOException

      Specified by:
        `nextDoc` in class `DocIdSetIterator`
      Throws:
        `IOException`

    - #### advance

          public final int advance​(int target)
                            throws IOException

      Specified by:
        `advance` in class `DocIdSetIterator`
      Throws:
        `IOException`

    - #### docID

          public final int docID()

      Specified by:
        `docID` in class `DocIdSetIterator`

    - #### nextStartPosition

          public final int nextStartPosition()
                                      throws IOException

      Description copied from class: `Spans`
      Returns the next start position for the current doc. There is always at least one start/end position per doc. After the last start/end position at the current doc this returns `Spans.NO_MORE_POSITIONS`.
      Specified by:
        `nextStartPosition` in class `Spans`
      Throws:
        `IOException`

    - #### startPosition

          public final int startPosition()

      Description copied from class: `Spans`
      Returns the start position in the current doc, or -1 when `Spans.nextStartPosition()` was not yet called on the current doc. After the last start/end position at the current doc this returns `Spans.NO_MORE_POSITIONS`.
      Specified by:
        `startPosition` in class `Spans`

    - #### endPosition

          public final int endPosition()

      Description copied from class: `Spans`
      Returns the end position for the current start position, or -1 when `Spans.nextStartPosition()` was not yet called on the current doc. After the last start/end position at the current doc this returns `Spans.NO_MORE_POSITIONS`.
      Specified by:
        `endPosition` in class `Spans`

    - #### width

          public int width()

      Description copied from class: `Spans`
      Return the width of the match, which is typically used to sloppy freq. It is only legal to call this method when the iterator is on a valid doc ID and positioned. The return value must be positive, and lower values means that the match is better.
      Specified by:
        `width` in class `Spans`

    - #### collect

          public void collect​(SpanCollector collector)
                       throws IOException

      Description copied from class: `Spans`
      Collect postings data from the leaves of the current Spans.

      This method should only be called after `Spans.nextStartPosition()`, and before `Spans.NO_MORE_POSITIONS` has been reached.

      Specified by:
        `collect` in class `Spans`
      Parameters:
        `collector` - a SpanCollector
      Throws:
        `IOException`

    - #### cost

          public final long cost()

      Specified by:
        `cost` in class `DocIdSetIterator`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Spans`

    - #### asTwoPhaseIterator

          public final TwoPhaseIterator asTwoPhaseIterator()

      Description copied from class: `Spans`
      Optional method: Return a `TwoPhaseIterator` view of this `Scorer`. A return value of `null` indicates that two-phase iteration is not supported.
      Overrides:
        `asTwoPhaseIterator` in class `Spans`
      See Also:
        `Scorer.twoPhaseIterator()`

    - #### positionsCost

          public float positionsCost()

      Description copied from class: `Spans`
      Return an estimation of the cost of using the positions of this `Spans` for any single document, but only after `Spans.asTwoPhaseIterator()` returned `null`. Otherwise this method should not be called. The returned value is independent of the current document.
      Specified by:
        `positionsCost` in class `Spans`