public NumericDocValuesSub(MergeState.DocMap docMap, NumericDocValues values) { super(docMap); this.values = values; assert values.docID() == -1; }
public NumericDocValuesSub(MergeState.DocMap docMap, NumericDocValues values) { super(docMap); this.values = values; assert values.docID() == -1; }
@Override public int docID() { return in.docID(); }
@Override public int docID() { return in.docID(); }
private static void checkNumericDocValues(String fieldName, NumericDocValues ndv) throws IOException { int doc; if (ndv.docID() != -1) { throw new RuntimeException("dv iterator for field: " + fieldName + " should start at docID=-1, but got " + ndv.docID()); } // TODO: we could add stats to DVs, e.g. total doc count w/ a value for this field while ((doc = ndv.nextDoc()) != NO_MORE_DOCS) { ndv.longValue(); } }
@Override public Comparable getComparable(int docID) throws IOException { assert docsInOrder(docID); int readerDocID = values.docID(); if (readerDocID < docID) { readerDocID = values.advance(docID); } if (readerDocID == docID) { return Double.longBitsToDouble(values.longValue()); } else { return missingValue; } } };
@Override public Comparable getComparable(int docID) throws IOException { assert docsInOrder(docID); int readerDocID = values.docID(); if (readerDocID < docID) { readerDocID = values.advance(docID); } if (readerDocID == docID) { return Float.intBitsToFloat((int) values.longValue()); } else { return missingValue; } } };
@Override public Comparable getComparable(int docID) throws IOException { assert docsInOrder(docID); int readerDocID = values.docID(); if (readerDocID < docID) { readerDocID = values.advance(docID); } if (readerDocID == docID) { return (int) values.longValue(); } else { return missingValue; } } };
@Override public Comparable getComparable(int docID) throws IOException { assert docsInOrder(docID); int readerDocID = values.docID(); if (readerDocID < docID) { readerDocID = values.advance(docID); } if (readerDocID == docID) { return values.longValue(); } else { return missingValue; } } };
@Override public int docID() { return values.docID(); }
boolean hasRecoverySource(int segmentDocId) throws IOException { if (recoverySource == null) { return false; } assert recoverySource.docID() < segmentDocId; return recoverySource.advanceExact(segmentDocId); } }
long docSeqNo(int segmentDocId) throws IOException { assert seqNoDV.docID() < segmentDocId; if (seqNoDV.advanceExact(segmentDocId) == false) { throw new IllegalStateException("DocValues for field [" + SeqNoFieldMapper.NAME + "] is not found"); } return seqNoDV.longValue(); }
long docVersion(int segmentDocId) throws IOException { assert versionDV.docID() < segmentDocId; if (versionDV.advanceExact(segmentDocId) == false) { throw new IllegalStateException("DocValues for field [" + VersionFieldMapper.NAME + "] is not found"); } return versionDV.longValue(); }
boolean isTombstone(int segmentDocId) throws IOException { if (tombstoneDV == null) { return false; } assert tombstoneDV.docID() < segmentDocId; return tombstoneDV.advanceExact(segmentDocId) && tombstoneDV.longValue() > 0; }
long docPrimaryTerm(int segmentDocId) throws IOException { if (primaryTermDV == null) { return -1L; } assert primaryTermDV.docID() < segmentDocId; // Use -1 for docs which don't have primary term. The caller considers those docs as nested docs. if (primaryTermDV.advanceExact(segmentDocId) == false) { return -1; } return primaryTermDV.longValue(); }
public NumericDocValuesSub(MergeState.DocMap docMap, NumericDocValues values) { super(docMap); this.values = values; assert values.docID() == -1; }
@Override public boolean exists(int doc) throws IOException { getValueForDoc(doc); return arr.docID() == doc; }
@Override public Object objectVal(int doc) throws IOException { long value = getValueForDoc(doc); if (arr.docID() == doc) { return longToObject(value); } else { return null; } }