org.elasticsearch.common.lucene.docset
Class SlicedOpenBitSet.SlicedIterator
java.lang.Object
org.apache.lucene.search.DocIdSetIterator
org.elasticsearch.common.lucene.docset.SlicedOpenBitSet.SlicedIterator
- Enclosing class:
- SlicedOpenBitSet
public static class SlicedOpenBitSet.SlicedIterator
- extends org.apache.lucene.search.DocIdSetIterator
An iterator to iterate over set bits in an OpenBitSet.
This is faster than nextSetBit() for iterating over the complete set of bits,
especially when the density of the bits set is high.
Field Summary |
protected static int[] |
bitlist
|
Fields inherited from class org.apache.lucene.search.DocIdSetIterator |
NO_MORE_DOCS |
Method Summary |
int |
advance(int target)
|
int |
docID()
|
int |
nextDoc()
** alternate shift implementations
// 32 bit shifts, but a long shift needed at the end
private void shift2() {
int y = (int)word;
if (y==0) {wordShift +=32; y = (int)(word >>>32); }
if ((y & 0x0000FFFF) == 0) { wordShift +=16; y>>>=16; }
if ((y & 0x000000FF) == 0) { wordShift +=8; y>>>=8; }
indexArray = bitlist[y & 0xff];
word >>>= (wordShift +1);
}
private void shift3() {
int lower = (int)word;
int lowByte = lower & 0xff;
if (lowByte != 0) {
indexArray=bitlist[lowByte];
return;
}
shift();
}
**** |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
bitlist
protected static final int[] bitlist
SlicedOpenBitSet.SlicedIterator
public SlicedOpenBitSet.SlicedIterator(SlicedOpenBitSet obs)
nextDoc
public int nextDoc()
- ** alternate shift implementations
// 32 bit shifts, but a long shift needed at the end
private void shift2() {
int y = (int)word;
if (y==0) {wordShift +=32; y = (int)(word >>>32); }
if ((y & 0x0000FFFF) == 0) { wordShift +=16; y>>>=16; }
if ((y & 0x000000FF) == 0) { wordShift +=8; y>>>=8; }
indexArray = bitlist[y & 0xff];
word >>>= (wordShift +1);
}
private void shift3() {
int lower = (int)word;
int lowByte = lower & 0xff;
if (lowByte != 0) {
indexArray=bitlist[lowByte];
return;
}
shift();
}
****
- Specified by:
nextDoc
in class org.apache.lucene.search.DocIdSetIterator
advance
public int advance(int target)
- Specified by:
advance
in class org.apache.lucene.search.DocIdSetIterator
docID
public int docID()
- Specified by:
docID
in class org.apache.lucene.search.DocIdSetIterator