Package org.apache.solr.search
Class HashDocSet
- java.lang.Object
-
- org.apache.solr.search.HashDocSet
-
public final class HashDocSet extends Object
HashDocSet
represents an unordered set of Lucene Document Ids using a primitive int hash table. It can be a better choice if there are few docs in the set because it takes up less memory and is faster to iterate and take set intersections.- Since:
- solr 0.9
-
-
Constructor Summary
Constructors Constructor Description HashDocSet(int[] docs, int offset, int len)
Create a HashDocSet from a list of *unique* idsHashDocSet(int[] docs, int offset, int len, float inverseLoadFactor)
Create a HashDocSet from a list of *unique* idsHashDocSet(HashDocSet set)
-
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.HashDocSet
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 aFixedBitSet
with a bit set for every document in thisDocSet
.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.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 commonDocIterator
iterator()
Returns an iterator that may be used to iterate over all of the documents in the set.long
ramBytesUsed()
int
size()
Returns the number of documents in the set.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
-
HashDocSet
public HashDocSet(HashDocSet set)
-
HashDocSet
public HashDocSet(int[] docs, int offset, int len)
Create a HashDocSet from a list of *unique* ids
-
HashDocSet
public HashDocSet(int[] docs, int offset, int len, float inverseLoadFactor)
Create a HashDocSet from a list of *unique* ids
-
-
Method Detail
-
exists
public boolean exists(int doc)
Description copied from interface:DocSet
Returns true if a document is in the DocSet.
-
size
public int size()
Description copied from interface:DocSet
Returns the number of documents in the set.
-
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
-
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 interfaceDocSet
- 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 interfaceDocSet
-
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 interfaceDocSet
-
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.
-
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.
-
clone
public HashDocSet clone()
-
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 interfaceDocSet
- 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 interfaceDocSet
- Throws:
SolrException
- Base implementation does not allow modifications- See Also:
DocSet.add(int)
-
getBits
protected org.apache.lucene.util.FixedBitSet getBits()
Return aFixedBitSet
with a bit set for every document in thisDocSet
. The default implementation iterates on all docs and sets the relevant bits. You should override if you can provide a more efficient implementation.
-
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.
-
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 interfaceDocSet
-
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 interfaceDocSet
-
-