if(docsHit.fastGet(i)) filteredValues.add(ByteBuffer.wrap(CassandraUtils.writeVInt(i)));
@Override public final int findValues(OpenBitSet bitset, int docId, int maxId) { while (true) { if (bitset.fastGet(_array[docId >> SHIFT_SIZE][docId & MASK])) return docId; if (docId++ >= maxId) break; } return DocIdSetIterator.NO_MORE_DOCS; }
@Override public final int findValues(OpenBitSet bitset, int docId, int maxId) { while (true) { if (bitset.fastGet(_array[docId >> SHIFT_SIZE][docId & MASK])) return docId; if (docId++ >= maxId) break; } return DocIdSetIterator.NO_MORE_DOCS; }
@Override public final int findValues(OpenBitSet bitset, int docId, int maxId) { while (true) { if (bitset.fastGet(_array[docId >> SHIFT_SIZE][docId & MASK])) return docId; if (docId++ >= maxId) break; } return DocIdSetIterator.NO_MORE_DOCS; }
@Override public int findValues(OpenBitSet bitset, int id, int maxId) { while (id <= maxId) { int i = id >> SHIFT_SIZE; if (_array[i] == null) { if (bitset.fastGet(_fillValue)) return id; else id = (i + 1) << SHIFT_SIZE; // jump to next segment } else { if (bitset.fastGet(_array[i][id & MASK])) return id; else id++; } } return DocIdSetIterator.NO_MORE_DOCS; }
public final boolean contains(int id, OpenBitSet values) { final int[] page = _list[id >> PAGEID_SHIFT]; if (page == null) return false; final int val = page[id & SLOTID_MASK]; if (val >= 0) { return (values.fastGet(val)); } else if (val != MISSING) { int idx = -(val >> VALIDX_SHIFT);// signed shift, remember this is a negative number int end = idx + (val & COUNT_MASK); while (idx < end) { if (values.fastGet(page[idx++])) return true; } } return false; }
public final int findValues(OpenBitSet values, int id, int maxID, boolean withMissing) { int[] page = _list[id >> PAGEID_SHIFT]; if (page == null) page = MISSING_PAGE; while (true) { final int val = page[id & SLOTID_MASK]; if (val >= 0) { if (values.fastGet(val)) return id; } else if (val != MISSING) { int idx = -(val >> VALIDX_SHIFT);// signed shift, remember this is a negative number int end = idx + (val & COUNT_MASK); while (idx < end) { if (values.fastGet(page[idx++])) return id; } } else if (withMissing) { if (values.fastGet(0)) return id; } if (id >= maxID) break; if ((++id & SLOTID_MASK) == 0) { page = _list[id >> PAGEID_SHIFT]; if (page == null) page = MISSING_PAGE; } } return DocIdSetIterator.NO_MORE_DOCS; }
public final void countNoReturnWithFilter(final int id, final int[] count, OpenBitSet filter) { final int[] page = _list[id >> PAGEID_SHIFT]; if (page == null) { count[0]++; return; } int val = page[id & SLOTID_MASK]; if (val >= 0) { if (filter.fastGet(val)) { count[val]++; } return; } else if (val != MISSING) { int idx = -(val >> VALIDX_SHIFT); // signed shift, remember val is a negative number int cnt = (val & COUNT_MASK); int end = idx + cnt; while (idx < end) { int value = page[idx++]; if (filter.fastGet(value)) { count[value]++; } } return; } count[0]++; return; }
@Override public boolean get(int docId) { return _bitset.fastGet(_orderArray.get(docId)); }
public FacetOrDocIdSetIterator(FacetDataCache<?> dataCache, OpenBitSet bitset) { _dataCache = dataCache; _orderArray = dataCache.orderArray; _bitset = bitset; _doc = Integer.MAX_VALUE; _maxID = -1; int size = _dataCache.valArray.size(); for (int i = 0; i < size; ++i) { if (!bitset.fastGet(i)) { continue; } if (_doc > _dataCache.minIDs[i]) { _doc = _dataCache.minIDs[i]; } if (_maxID < _dataCache.maxIDs[i]) { _maxID = _dataCache.maxIDs[i]; } } _doc--; if (_doc < 0) { _doc = -1; } }
@Override public boolean get(int docId) { if (multi) { return multiCache._nestedArray.contains(docId, openBitSet); } else { return openBitSet.fastGet(dataCache.orderArray.get(docId)); } } };
public final void countNoReturnWithFilter(final int id, final BigSegmentedArray count, OpenBitSet filter) { final int[] page = _list[id >> PAGEID_SHIFT]; if (page == null) { count.add(0, count.get(0) + 1); return; } int val = page[id & SLOTID_MASK]; if (val >= 0) { if (filter.fastGet(val)) { count.add(val, count.get(val) + 1); } return; } else if (val != MISSING) { int idx = -(val >> VALIDX_SHIFT); // signed shift, remember val is a negative number int cnt = (val & COUNT_MASK); int end = idx + cnt; while (idx < end) { int value = page[idx++]; if (filter.fastGet(value)) { count.add(value, count.get(value) + 1); } } return; } count.add(0, count.get(0) + 1); return; }