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, empty, 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`