org.apache.solr.search

## Class HashDocSet

- java.lang.Object
- - org.apache.solr.search.HashDocSet

- All Implemented Interfaces:
    Closeable, AutoCloseable, Accountable, DocSet

      public final class HashDocSet
      extends Object

  `HashDocSet` represents an unordered set of Lucene Document Ids using a primitive int hash table. It can be a better choice if there are few docs in the set because it takes up less memory and is faster to iterate and take set intersections.
  Since:
    solr 0.9

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `HashDocSet(HashDocSet set)`
    `HashDocSet(int[] docs, int offset, int len)` Create a HashDocSet from a list of *unique* ids
    `HashDocSet(int[] docs, int offset, int len, float inverseLoadFactor)` Create a HashDocSet from a list of *unique* ids

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(int doc)` Adds the specified document if it is not currently in the DocSet (optional operation).
    `void` | `addAllTo(DocSet target)` Adds all the docs from this set to the target set.
    `void` | `addUnique(int doc)` Adds a document the caller knows is not currently in the DocSet (optional operation).
    `DocSet` | `andNot(DocSet other)` Returns the documents in this set that are not in the other set.
    `int` | `andNotSize(DocSet other)` Returns the number of documents in this set that are not in the other set.
    `protected HashDocSet` | `clone()`
    `void` | `close()` FUTURE: for off-heap
    `boolean` | `equals(Object obj)`
    `boolean` | `exists(int doc)` Returns true if a document is in the DocSet.
    `protected FixedBitSet` | `getBits()` Return a `FixedBitSet` with a bit set for every document in this `DocSet`.
    `Collection<Accountable>` | `getChildResources()`
    `Filter` | `getTopFilter()` Returns a Filter for use in Lucene search methods, assuming this DocSet was generated from the top-level MultiReader that the Lucene search methods will be invoked with.
    `DocSet` | `intersection(DocSet other)` Returns the intersection of this set with another set.
    `int` | `intersectionSize(DocSet other)` Returns the number of documents of the intersection of this set with another set.
    `boolean` | `intersects(DocSet other)` Returns true if these sets have any elements in common
    `DocIterator` | `iterator()` Returns an iterator that may be used to iterate over all of the documents in the set.
    `long` | `ramBytesUsed()`
    `int` | `size()` Returns the number of documents in the set.
    `static FixedBitSet` | `toBitSet(DocSet set)`
    `DocSet` | `union(DocSet other)` Returns the union of this set with another set.
    `int` | `unionSize(DocSet other)` Returns the number of documents of the union of this set with another set.

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

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

- - ### Constructor Detail

    - #### HashDocSet

          public HashDocSet(HashDocSet set)

    - #### HashDocSet

          public HashDocSet(int[] docs,
                            int offset,
                            int len)

      Create a HashDocSet from a list of *unique* ids

    - #### HashDocSet

          public HashDocSet(int[] docs,
                            int offset,
                            int len,
                            float inverseLoadFactor)

      Create a HashDocSet from a list of *unique* ids

  - ### Method Detail

    - #### exists

          public boolean exists(int doc)

      Description copied from interface: `DocSet`
      Returns true if a document is in the DocSet.

    - #### size

          public int size()

      Description copied from interface: `DocSet`
      Returns the number of documents in the set.

    - #### iterator

          public DocIterator iterator()

      Description copied from interface: `DocSet`
      Returns an iterator that may be used to iterate over all of the documents in the set.

      The order of the documents returned by this iterator is non-deterministic, and any scoring information is meaningless

    - #### intersection

          public DocSet intersection(DocSet other)

      Description copied from interface: `DocSet`
      Returns the intersection of this set with another set. Neither set is modified - a new DocSet is created and returned.
      Specified by:
        `intersection` in interface `DocSet`
      Returns:
        a DocSet representing the intersection

    - #### intersectionSize

          public int intersectionSize(DocSet other)

      Description copied from interface: `DocSet`
      Returns the number of documents of the intersection of this set with another set. May be more efficient than actually creating the intersection and then getting its size.
      Specified by:
        `intersectionSize` in interface `DocSet`

    - #### intersects

          public boolean intersects(DocSet other)

      Description copied from interface: `DocSet`
      Returns true if these sets have any elements in common
      Specified by:
        `intersects` in interface `DocSet`

    - #### andNot

          public DocSet andNot(DocSet other)

      Description copied from interface: `DocSet`
      Returns the documents in this set that are not in the other set. Neither set is modified - a new DocSet is created and returned.
      Specified by:
        `andNot` in interface `DocSet`
      Returns:
        a DocSet representing this AND NOT other

    - #### union

          public DocSet union(DocSet other)

      Description copied from interface: `DocSet`
      Returns the union of this set with another set. Neither set is modified - a new DocSet is created and returned.
      Specified by:
        `union` in interface `DocSet`
      Returns:
        a DocSet representing the union

    - #### clone

          protected HashDocSet clone()

      Overrides:
        `clone` in class `Object`

    - #### ramBytesUsed

          public long ramBytesUsed()

    - #### getChildResources

          public Collection<Accountable> getChildResources()

    - #### toBitSet

          public static FixedBitSet toBitSet(DocSet set)

    - #### equals

          public boolean equals(Object obj)

      Overrides:
        `equals` in class `Object`

    - #### add

          public void add(int doc)

      Description copied from interface: `DocSet`
      Adds the specified document if it is not currently in the DocSet (optional operation).
      Specified by:
        `add` in interface `DocSet`
      Throws:
        `SolrException` - Base implementation does not allow modifications
      See Also:
        `DocSet.addUnique(int)`

    - #### addUnique

          public void addUnique(int doc)

      Description copied from interface: `DocSet`
      Adds a document the caller knows is not currently in the DocSet (optional operation).

      This method may be faster then `add(doc)` in some implementations provided the caller is certain of the precondition.

      Specified by:
        `addUnique` in interface `DocSet`
      Throws:
        `SolrException` - Base implementation does not allow modifications
      See Also:
        `DocSet.add(int)`

    - #### getBits

          protected FixedBitSet getBits()

      Return a `FixedBitSet` with a bit set for every document in this `DocSet`. The default implementation iterates on all docs and sets the relevant bits. You should override if you can provide a more efficient implementation.

    - #### unionSize

          public int unionSize(DocSet other)

      Description copied from interface: `DocSet`
      Returns the number of documents of the union of this set with another set. May be more efficient than actually creating the union and then getting its size.
      Specified by:
        `unionSize` in interface `DocSet`

    - #### andNotSize

          public int andNotSize(DocSet other)

      Description copied from interface: `DocSet`
      Returns the number of documents in this set that are not in the other set.
      Specified by:
        `andNotSize` in interface `DocSet`

    - #### getTopFilter

          public Filter getTopFilter()

      Description copied from interface: `DocSet`
      Returns a Filter for use in Lucene search methods, assuming this DocSet was generated from the top-level MultiReader that the Lucene search methods will be invoked with.
      Specified by:
        `getTopFilter` in interface `DocSet`

    - #### addAllTo

          public void addAllTo(DocSet target)

      Description copied from interface: `DocSet`
      Adds all the docs from this set to the target set. The target should be sized large enough to accommodate all of the documents before calling this method.
      Specified by:
        `addAllTo` in interface `DocSet`

    - #### close

          public void close()
                     throws IOException

      FUTURE: for off-heap
      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in interface `AutoCloseable`
      Throws:
        `IOException`

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