private void init(AtomicReader reader) throws IOException { int maxDoc = reader.maxDoc(); _uidArray = new long[maxDoc]; NumericDocValues uidValues = reader .getNumericDocValues(AbstractZoieIndexable.DOCUMENT_ID_PAYLOAD_FIELD); Bits liveDocs = reader.getLiveDocs(); for (int i = 0; i < maxDoc; ++i) { if (liveDocs != null && !liveDocs.get(i)) { _uidArray[i] = ZoieSegmentReader.DELETED_UID; continue; } _uidArray[i] = uidValues.get(i); } }
private void init(AtomicReader reader) throws IOException { int maxDoc = reader.maxDoc(); _uidArray = new long[maxDoc]; NumericDocValues uidValues = reader .getNumericDocValues(AbstractZoieIndexable.DOCUMENT_ID_PAYLOAD_FIELD); Bits liveDocs = reader.getLiveDocs(); for (int i = 0; i < maxDoc; ++i) { if (liveDocs != null && !liveDocs.get(i)) { _uidArray[i] = ZoieSegmentReader.DELETED_UID; continue; } _uidArray[i] = uidValues.get(i); } }
@Override public void collect(int doc) throws IOException { OsmObject object; BytesRef bytesRef = new BytesRef(10); context.reader().getBinaryDocValues("class_value").get(doc, bytesRef); if (class_nodeByteRef.bytesEquals(bytesRef)) { object = getNode(context.reader().getNumericDocValues("node.identity_value").get(doc)); } else if (class_wayByteRef.bytesEquals(bytesRef)) { object = getWay(context.reader().getNumericDocValues("way.identity_value").get(doc)); } else if (class_relationByteRef.bytesEquals(bytesRef)) { object = getRelation(context.reader().getNumericDocValues("relation.identity_value").get(doc)); } else { throw new RuntimeException(); } searchResults.put(object, scorer.score()); }
ReaderData(IndexReader reader) throws IOException { this.reader = reader; long minUID = Long.MAX_VALUE; long maxUID = Long.MIN_VALUE; uidMap = new Long2IntRBTreeMap(); uidMap.defaultReturnValue(-1); int maxDoc = reader.maxDoc(); if (maxDoc == 0) { _minUID = Long.MIN_VALUE; _maxUID = Long.MIN_VALUE; return; } List<AtomicReaderContext> leaves = reader.getContext().leaves(); for (AtomicReaderContext context : leaves) { AtomicReader atomicReader = context.reader(); NumericDocValues uidValues = atomicReader .getNumericDocValues(AbstractZoieIndexable.DOCUMENT_ID_PAYLOAD_FIELD); Bits liveDocs = atomicReader.getLiveDocs(); for (int i = 0; i < atomicReader.maxDoc(); ++i) { if (liveDocs == null || liveDocs.get(i)) { long uid = uidValues.get(i); if (uid < minUID) minUID = uid; if (uid > maxUID) maxUID = uid; uidMap.put(uid, i); } } } _minUID = minUID; _maxUID = maxUID; }
ReaderData(IndexReader reader) throws IOException { this.reader = reader; long minUID = Long.MAX_VALUE; long maxUID = Long.MIN_VALUE; uidMap = new Long2IntRBTreeMap(); uidMap.defaultReturnValue(-1); int maxDoc = reader.maxDoc(); if (maxDoc == 0) { _minUID = Long.MIN_VALUE; _maxUID = Long.MIN_VALUE; return; } List<AtomicReaderContext> leaves = reader.getContext().leaves(); for (AtomicReaderContext context : leaves) { AtomicReader atomicReader = context.reader(); NumericDocValues uidValues = atomicReader .getNumericDocValues(AbstractZoieIndexable.DOCUMENT_ID_PAYLOAD_FIELD); Bits liveDocs = atomicReader.getLiveDocs(); for (int i = 0; i < atomicReader.maxDoc(); ++i) { if (liveDocs == null || liveDocs.get(i)) { long uid = uidValues.get(i); if (uid < minUID) minUID = uid; if (uid > maxUID) maxUID = uid; uidMap.put(uid, i); } } } _minUID = minUID; _maxUID = maxUID; }