Package org.apache.lucene.util

## Class RoaringDocIdSet

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

- All Implemented Interfaces:
    `Accountable`

      public class RoaringDocIdSet
      extends DocIdSet

  `DocIdSet` implementation inspired from http://roaringbitmap.org/

  The space is divided into blocks of 2^16 bits and each block is encoded independently. In each block, if less than 2^12 bits are set, then documents are simply stored in a short[]. If more than 2^16-2^12 bits are set, then the inverse of the set is encoded in a simple short[]. Otherwise a `FixedBitSet` is used.

  NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `RoaringDocIdSet.Builder` | A builder of `RoaringDocIdSet`s.

  - ### Field Summary

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

      `EMPTY`

    - ### Fields inherited from interface org.apache.lucene.util.Accountable

      `NULL_ACCOUNTABLE`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `cardinality()` | Return the exact number of documents that are contained in this set.
    `DocIdSetIterator` | `iterator()` | Provides a `DocIdSetIterator` to access the set.
    `long` | `ramBytesUsed()` | Return the memory usage of this object in bytes.
    `String` | `toString()` |

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

      `all, bits`

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

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

    - ### Methods inherited from interface org.apache.lucene.util.Accountable

      `getChildResources`

- - ### Method Detail

    - #### ramBytesUsed

          public long ramBytesUsed()

      Description copied from interface: `Accountable`
      Return the memory usage of this object in bytes. Negative values are illegal.

    - #### iterator

          public DocIdSetIterator iterator()
                                    throws IOException

      Description copied from class: `DocIdSet`
      Provides a `DocIdSetIterator` to access the set. This implementation can return `null` if there are no docs that match.
      Specified by:
        `iterator` in class `DocIdSet`
      Throws:
        `IOException`

    - #### cardinality

          public int cardinality()

      Return the exact number of documents that are contained in this set.

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`