Class DocSlice

  • All Implemented Interfaces:
    Cloneable, org.apache.lucene.util.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 Description
      DocSlice​(int offset, int len, int[] docs, float[] scores, long matches, float maxScore)
      Primary constructor for a DocSlice instance.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method 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.
      DocSlice clone()  
      boolean equals​(Object obj)  
      boolean exists​(int doc)
      Returns true if a document is in the DocSet.
      protected org.apache.lucene.util.FixedBitSet getBits()
      Return a FixedBitSet with a bit set for every document in this DocSet.
      Collection<org.apache.lucene.util.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
      long 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 org.apache.lucene.util.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.
    • Constructor Detail

      • DocSlice

        public DocSlice​(int offset,
                        int len,
                        int[] docs,
                        float[] scores,
                        long 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 long 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
      • 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 org.apache.lucene.util.Accountable
      • getChildResources

        public Collection<org.apache.lucene.util.Accountable> getChildResources()
        Specified by:
        getChildResources in interface org.apache.lucene.util.Accountable
      • toBitSet

        public static org.apache.lucene.util.FixedBitSet toBitSet​(DocSet set)
      • 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 org.apache.lucene.util.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