Class SortedIntDocSet

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

    public class SortedIntDocSet
    extends Object
    SortedIntDocSet represents a sorted set of Lucene Document Ids.
    • 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).
      static int andNot​(int[] a, int lena, int[] b, int lenb, int[] target)
      puts the intersection of a and not b into the target array and returns the size
      DocSet andNot​(DocSet other)
      Returns the documents in this set that are not in the other set.
      protected static int andNotBinarySearch​(int[] a, int lena, int[] b, int lenb, int[] target)  
      int andNotSize​(DocSet other)
      Returns the number of documents in this set that are not in the other set.
      SortedIntDocSet clone()  
      boolean equals​(Object obj)  
      boolean exists​(int doc)
      Returns true if a document is in the DocSet.
      static int findIndex​(int[] arr, int value, int low, int high)  
      static int firstNonSorted​(int[] arr, int offset, int len)
      Returns the index of the first non-sorted element or -1 if they are all sorted
      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()  
      int[] getDocs()  
      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.
      static int intersection​(int[] a, int lena, int[] b, int lenb, int[] target)
      puts the intersection of a and b into the target array and returns the size
      DocSet intersection​(DocSet other)
      Returns the intersection of this set with another set.
      protected static int intersectionBinarySearch​(int[] a, int lena, int[] b, int lenb, int[] target)
      Puts the intersection of a and b into the target array and returns the size.
      static int intersectionSize​(int[] smallerSortedList, int[] biggerSortedList)  
      int intersectionSize​(DocSet other)
      Returns the number of documents of the intersection of this set with another set.
      static boolean intersects​(int[] smallerSortedList, int[] biggerSortedList)  
      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()  
      static int[] shrink​(int[] arr, int newSize)  
      int size()
      Returns the number of documents in the set.
      static org.apache.lucene.util.FixedBitSet toBitSet​(DocSet set)  
      String toString()  
      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.
    • Field Detail

      • docs

        protected final int[] docs
      • zeroInts

        public static int[] zeroInts
    • Constructor Detail

      • SortedIntDocSet

        public SortedIntDocSet​(int[] docs)
        Parameters:
        docs - Sorted list of ids
      • SortedIntDocSet

        public SortedIntDocSet​(int[] docs,
                               int len)
        Parameters:
        docs - Sorted list of ids
        len - Number of ids in the list
    • Method Detail

      • getDocs

        public int[] getDocs()
      • size

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

        public static int[] shrink​(int[] arr,
                                   int newSize)
      • firstNonSorted

        public static int firstNonSorted​(int[] arr,
                                         int offset,
                                         int len)
        Returns the index of the first non-sorted element or -1 if they are all sorted
      • intersectionSize

        public static int intersectionSize​(int[] smallerSortedList,
                                           int[] biggerSortedList)
      • intersects

        public static boolean intersects​(int[] smallerSortedList,
                                         int[] biggerSortedList)
      • 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
      • intersection

        public static int intersection​(int[] a,
                                       int lena,
                                       int[] b,
                                       int lenb,
                                       int[] target)
        puts the intersection of a and b into the target array and returns the size
      • intersectionBinarySearch

        protected static int intersectionBinarySearch​(int[] a,
                                                      int lena,
                                                      int[] b,
                                                      int lenb,
                                                      int[] target)
        Puts the intersection of a and b into the target array and returns the size. lena should be smaller than lenb
      • 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
      • andNotBinarySearch

        protected static int andNotBinarySearch​(int[] a,
                                                int lena,
                                                int[] b,
                                                int lenb,
                                                int[] target)
      • andNot

        public static int andNot​(int[] a,
                                 int lena,
                                 int[] b,
                                 int lenb,
                                 int[] target)
        puts the intersection of a and not b into the target array and returns the size
      • 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
      • 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
      • exists

        public boolean exists​(int doc)
        Description copied from interface: DocSet
        Returns true if a document is in the DocSet.
      • 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.
      • findIndex

        public static int findIndex​(int[] arr,
                                    int value,
                                    int low,
                                    int high)
      • 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)
      • 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)
      • 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
      • 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