Class BitDocSet

  • All Implemented Interfaces:
    Cloneable, org.apache.lucene.util.Accountable, DocSet

    public class BitDocSet
    extends Object
    BitDocSet represents an unordered set of Lucene Document Ids using a BitSet. A set bit represents inclusion in the set for that document.
    Since:
    solr 0.9
    • Field Summary

      • Fields inherited from interface org.apache.solr.search.DocSet

        EMPTY
    • Constructor Summary

      Constructors 
      Constructor Description
      BitDocSet()  
      BitDocSet​(org.apache.lucene.util.FixedBitSet bits)
      Construct a BitDocSet.
      BitDocSet​(org.apache.lucene.util.FixedBitSet bits, int size)
      Construct a BitDocSet, and provides the number of set bits.
    • Constructor Detail

      • BitDocSet

        public BitDocSet()
      • BitDocSet

        public BitDocSet​(org.apache.lucene.util.FixedBitSet bits)
        Construct a BitDocSet. The capacity of the FixedBitSet should be at least maxDoc()
      • BitDocSet

        public BitDocSet​(org.apache.lucene.util.FixedBitSet bits,
                         int size)
        Construct a BitDocSet, and provides the number of set bits. The capacity of the FixedBitSet should be at least maxDoc()
    • Method Detail

      • 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

      • getBits

        public 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.
        Returns:
        the internal FixedBitSet that should not be modified.
      • 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
        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
        See Also:
        DocSet.add(int)
      • size

        public int size()
        Description copied from interface: DocSet
        Returns the number of documents in the set.
      • invalidateSize

        public void invalidateSize()
        The number of set bits - size - is cached. If the bitset is changed externally, this method should be used to invalidate the previously cached size.
      • exists

        public boolean exists​(int doc)
        Returns true of the doc exists in the set. Should only be called when doc < FixedBitSet.length().
      • 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
      • 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
      • 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
      • 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
      • 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
      • ramBytesUsed

        public long ramBytesUsed()
      • getChildResources

        public Collection<org.apache.lucene.util.Accountable> getChildResources()
      • toBitSet

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