org.apache.lucene.search

## Class DocIdSet

- java.lang.Object
- - org.apache.lucene.search.DocIdSet

- Direct Known Subclasses:
    DocIdBitSet, FieldCacheDocIdSet, FilteredDocIdSet, FixedBitSet, OpenBitSet

      public abstract class DocIdSet
      extends Object

  A DocIdSet contains a set of doc ids. Implementing classes must only implement `iterator()` to provide access to the set.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static DocIdSet` | `EMPTY_DOCIDSET` An empty `DocIdSet` instance for easy use, e.g.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DocIdSet()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Bits` | `bits()` Optionally provides a `Bits` interface for random access to matching documents.
    `boolean` | `isCacheable()` This method is a hint for `CachingWrapperFilter`, if this `DocIdSet` should be cached without copying it into a BitSet.
    `abstract DocIdSetIterator` | `iterator()` Provides a `DocIdSetIterator` to access the set.

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

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

- - ### Field Detail

    - #### EMPTY_DOCIDSET

          public static final DocIdSet EMPTY_DOCIDSET

      An empty `DocIdSet` instance for easy use, e.g. in Filters that hit no documents.

  - ### Constructor Detail

    - #### DocIdSet

          public DocIdSet()

  - ### Method Detail

    - #### iterator

          public abstract DocIdSetIterator iterator()
                                             throws IOException

      Provides a `DocIdSetIterator` to access the set. This implementation can return `null` or `EMPTY_DOCIDSET.iterator()` if there are no docs that match.
      Throws:
        `IOException`

    - #### bits

          public Bits bits()
                    throws IOException

      Optionally provides a `Bits` interface for random access to matching documents.
      Returns:
        `null`, if this `DocIdSet` does not support random access. In contrast to `iterator()`, a return value of `null` does not imply that no documents match the filter! The default implementation does not provide random access, so you only need to implement this method if your DocIdSet can guarantee random access to every docid in O(1) time without external disk access (as `Bits` interface cannot throw `IOException`). This is generally true for bit sets like `FixedBitSet`, which return itself if they are used as `DocIdSet`.
      Throws:
        `IOException`

    - #### isCacheable

          public boolean isCacheable()

      This method is a hint for `CachingWrapperFilter`, if this `DocIdSet` should be cached without copying it into a BitSet. The default is to return `false`. If you have an own `DocIdSet` implementation that does its iteration very effective and fast without doing disk I/O, override this method and return `true`.

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