org.apache.solr.search
Class SortedIntDocSet

java.lang.Object
  extended by org.apache.solr.search.SortedIntDocSet
All Implemented Interfaces:
DocSet

public class SortedIntDocSet
extends Object

SortedIntDocSet represents a sorted set of Lucene Document Ids.


Field Summary
protected  int[] docs
           
static SortedIntDocSet zero
           
static int[] zeroInts
           
 
Fields inherited from interface org.apache.solr.search.DocSet
EMPTY
 
Constructor Summary
SortedIntDocSet(int[] docs)
           
SortedIntDocSet(int[] docs, int len)
           
 
Method Summary
 void add(int doc)
          Adds the specified document if it is not currently in the DocSet (optional operation).
 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.
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
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.
protected  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
 OpenBitSet getBits()
          Inefficient base implementation.
 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.
 DocSet intersection(DocSet other)
          Returns the intersection of this set with another set.
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
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.
 int intersectionSize(DocSet other)
          Returns the number of documents of the intersection of this set with another set.
static int intersectionSize(int[] smallerSortedList, int[] biggerSortedList)
           
 boolean intersects(DocSet other)
          Returns true if these sets have any elements in common
static boolean intersects(int[] smallerSortedList, int[] biggerSortedList)
           
 DocIterator iterator()
          Returns an iterator that may be used to iterate over all of the documents in the set.
 long memSize()
          Returns the approximate amount of memory taken by this DocSet.
 void setBitsOn(OpenBitSet target)
          Takes the docs from this set and sets those bits on the target OpenBitSet.
static int[] shrink(int[] arr, int newSize)
           
 int size()
          Returns the number of documents in the 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
 

Field Detail

docs

protected final int[] docs

zeroInts

public static int[] zeroInts

zero

public static SortedIntDocSet zero
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.


memSize

public long memSize()
Description copied from interface: DocSet
Returns the approximate amount of memory taken by this DocSet. This is only an approximation and doesn't take into account java object overhead.

Returns:
the approximate memory consumption in bytes

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 it's 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

setBitsOn

public void setBitsOn(OpenBitSet target)
Description copied from interface: DocSet
Takes the docs from this set and sets those bits on the target OpenBitSet. The target should be sized large enough to accommodate all of the documents before calling this method.

Specified by:
setBitsOn 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 OpenBitSet getBits()
Inefficient base implementation.

Specified by:
getBits in interface DocSet
Returns:
An OpenBitSet with the bit number of every docid set in the set.
See Also:
BitDocSet.getBits()

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

clone

protected SortedIntDocSet clone()
Overrides:
clone in class Object

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 implementaions 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 it's 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


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