org.apache.solr.search

## Class DocSlice

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

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

      public class DocSlice
      extends Object
      implements DocList

  `DocSlice` implements DocList as an array of docids and optional scores.
  Since:
    solr 0.9

- - ### Field Summary

    - ### Fields inherited from interface org.apache.solr.search.DocSet

      `EMPTY`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DocSlice(int offset, int len, int[] docs, float[] scores, int matches, float maxScore)` Primary constructor for a DocSlice instance.

  - ### 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 DocSlice` | `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.
    `boolean` | `hasScores()` True if scores were retained
    `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 the documents in this DocList
    `int` | `matches()` Returns the total number of matches for the search (as opposed to just the number collected according to `offset()` and `size()`).
    `float` | `maxScore()` The maximum score for the search...
    `int` | `offset()` Returns the zero based offset of this list within the total ordered list of matches to the query.
    `long` | `ramBytesUsed()` WARNING: this can over-estimate real memory use since backing arrays are shared with other DocSlice instances
    `int` | `size()` Returns the number of ids in this list.
    `DocList` | `subset(int offset, int len)` Get a subset of an existing DocList.
    `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`

    - ### Methods inherited from interface org.apache.solr.search.DocSet

      `add, addAllTo, addUnique, andNot, andNotSize, getTopFilter, union, unionSize`

    - ### Methods inherited from interface java.io.Closeable

      `close`

- - ### Constructor Detail

    - #### DocSlice

          public DocSlice(int offset,
                          int len,
                          int[] docs,
                          float[] scores,
                          int matches,
                          float maxScore)

      Primary constructor for a DocSlice instance.
      Parameters:
        `offset` - starting offset for this range of docs
        `len` - length of results
        `docs` - array of docids starting at position 0
        `scores` - array of scores that corresponds to docs, may be null
        `matches` - total number of matches for the query

  - ### Method Detail

    - #### subset

          public DocList subset(int offset,
                                int len)

      Description copied from interface: `DocList`
      Get a subset of an existing DocList. Returns null if not possible.
      Specified by:
        `subset` in interface `DocList`

    - #### hasScores

          public boolean hasScores()

      Description copied from interface: `DocList`
      True if scores were retained
      Specified by:
        `hasScores` in interface `DocList`

    - #### maxScore

          public float maxScore()

      Description copied from interface: `DocList`
      The maximum score for the search... only valid if scores were retained (if hasScores()==true)
      Specified by:
        `maxScore` in interface `DocList`

    - #### offset

          public int offset()

      Description copied from interface: `DocList`
      Returns the zero based offset of this list within the total ordered list of matches to the query.
      Specified by:
        `offset` in interface `DocList`

    - #### size

          public int size()

      Description copied from interface: `DocList`
      Returns the number of ids in this list.
      Specified by:
        `size` in interface `DocList`
      Specified by:
        `size` in interface `DocSet`

    - #### matches

          public int matches()

      Description copied from interface: `DocList`
      Returns the total number of matches for the search (as opposed to just the number collected according to `offset()` and `size()`). Hence it's always true that matches() >= size()
      Specified by:
        `matches` in interface `DocList`
      Returns:
        number of matches for the search(query & any filters)

    - #### exists

          public boolean exists(int doc)

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

    - #### iterator

          public DocIterator iterator()

      Description copied from interface: `DocList`
      Returns an iterator that may be used to iterate over the documents in this DocList

      The order of the documents returned by this iterator is based on the Sort order of the search that produced it. The Scoring information is meaningful only if `hasScores()` returns true.

      Specified by:
        `iterator` in interface `DocList`
      Specified by:
        `iterator` in interface `DocSet`
      See Also:
        `DocList.hasScores()`

    - #### 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`

    - #### clone

          protected DocSlice clone()

      Overrides:
        `clone` in class `Object`

    - #### ramBytesUsed

          public long ramBytesUsed()

      WARNING: this can over-estimate real memory use since backing arrays are shared with other DocSlice instances
      Specified by:
        `ramBytesUsed` in interface `Accountable`

    - #### getChildResources

          public Collection<Accountable> getChildResources()

      Specified by:
        `getChildResources` in interface `Accountable`

    - #### 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.

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

    - #### 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`

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

    - #### 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.