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 enum`
  `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 final 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

  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.
  `final int`
  `advance(int target)`
  `final 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.
  `final long`
  `cost()`
  `final int`
  `docID()`
  `final int`
  `endPosition()`
  Returns the end position for the current start position, or -1 when `Spans.nextStartPosition()` was not yet called on the current doc.
  `final int`
  `nextDoc()`
  `final 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`.
  `final 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, docIDRunEnd, empty, intoBitSet, range, slowAdvance`

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

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

- ## Field Details

  - ### in

    protected final Spans in
    The wrapped spans instance.

- ## Constructor Details

  - ### FilterSpans

    protected FilterSpans(Spans in)
    Wrap the given `Spans`.

- ## Method Details

  - ### 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`