Package org.apache.lucene.queries.intervals

# Class IntervalFilter

java.lang.Object
org.apache.lucene.search.DocIdSetIterator
org.apache.lucene.queries.intervals.IntervalIterator
org.apache.lucene.queries.intervals.IntervalFilter

public abstract class IntervalFilter extends IntervalIterator
Wraps an `IntervalIterator` and passes through those intervals that match the `accept()` function

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final IntervalIterator`
  `in`

  ### Fields inherited from class org.apache.lucene.queries.intervals.IntervalIterator

  `NO_MORE_INTERVALS`

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

  `NO_MORE_DOCS`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `IntervalFilter(IntervalIterator in)`
  Create a new filter

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected abstract boolean`
  `accept()`
  `int`
  `advance(int target)`
  `long`
  `cost()`
  `int`
  `docID()`
  `int`
  `end()`
  The end of the current interval
  `int`
  `gaps()`
  The number of gaps within the current interval
  `float`
  `matchCost()`
  An indication of the average cost of iterating over all intervals in a document
  `int`
  `nextDoc()`
  `final int`
  `nextInterval()`
  Advance the iterator to the next interval
  `int`
  `start()`
  The start of the current interval

  ### Methods inherited from class org.apache.lucene.queries.intervals.IntervalIterator

  `toString, width`

  ### 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 IntervalIterator in

- ## Constructor Details

  - ### IntervalFilter

    public IntervalFilter(IntervalIterator in)
    Create a new filter

- ## Method Details

  - ### docID

    public int docID()
    Specified by:
      `docID` in class `DocIdSetIterator`

  - ### nextDoc

    public int nextDoc() throws IOException
    Specified by:
      `nextDoc` in class `DocIdSetIterator`
    Throws:
      `IOException`

  - ### advance

    public int advance(int target) throws IOException
    Specified by:
      `advance` in class `DocIdSetIterator`
    Throws:
      `IOException`

  - ### cost

    public long cost()
    Specified by:
      `cost` in class `DocIdSetIterator`

  - ### start

    public int start()
    Description copied from class: `IntervalIterator`
    The start of the current interval

    Returns -1 if `IntervalIterator.nextInterval()` has not yet been called and `IntervalIterator.NO_MORE_INTERVALS` once the iterator is exhausted.

    Specified by:
      `start` in class `IntervalIterator`

  - ### end

    public int end()
    Description copied from class: `IntervalIterator`
    The end of the current interval

    Returns -1 if `IntervalIterator.nextInterval()` has not yet been called and `IntervalIterator.NO_MORE_INTERVALS` once the iterator is exhausted.

    Specified by:
      `end` in class `IntervalIterator`

  - ### gaps

    public int gaps()
    Description copied from class: `IntervalIterator`
    The number of gaps within the current interval

    Note that this returns the number of gaps between the immediate sub-intervals of this interval, and does not include the gaps inside those sub-intervals.

    Should not be called before `IntervalIterator.nextInterval()`, or after it has returned `IntervalIterator.NO_MORE_INTERVALS`

    Specified by:
      `gaps` in class `IntervalIterator`

  - ### matchCost

    public float matchCost()
    Description copied from class: `IntervalIterator`
    An indication of the average cost of iterating over all intervals in a document
    Specified by:
      `matchCost` in class `IntervalIterator`
    See Also:
      - `TwoPhaseIterator.matchCost()`

  - ### accept

    protected abstract boolean accept()
    Returns:
      `true` if the wrapped iterator's interval should be passed on

  - ### nextInterval

    public final int nextInterval() throws IOException
    Description copied from class: `IntervalIterator`
    Advance the iterator to the next interval

    Should not be called after `DocIdSetIterator.NO_MORE_DOCS` is returned by `DocIdSetIterator.nextDoc()` or `DocIdSetIterator.advance(int)`. If that's the case in some existing code, please consider opening an issue. However, after `IntervalIterator.NO_MORE_INTERVALS` is returned by this method, it might be called again.

    Specified by:
      `nextInterval` in class `IntervalIterator`
    Returns:
      the start of the next interval, or `IntervalIterator.NO_MORE_INTERVALS` if there are no more intervals on the current document
    Throws:
      `IOException`