@Override public String strVal(int doc) { int ord = termsIndex.getOrd(doc); if (ord == 0) return null; termsIndex.lookup(ord, spare); UnicodeUtil.UTF8toUTF16(spare, spareChars); return spareChars.toString(); }
@Override public boolean bytesVal(int doc, BytesRef target) { int ord = termsIndex.getOrd(doc); if (ord == 0) { target.length = 0; return false; } termsIndex.lookup(ord, target); return true; }
public int compareBottom(int doc) { assert bottomSlot != -1; int order = termsIndex.getOrd(doc); int ord = (order == 0) ? NULL_ORD : order; final int cmp = bottomOrd - ord; if (cmp != 0) { return cmp; } // take care of the case where both vals are null if (bottomOrd == NULL_ORD) return 0; return bottomValue.compareTo(termsIndex.lookup(order, tempBR)); }
@Override public void copy(int slot, int doc) { final int ord = termsIndex.getOrd(doc); assert ord >= 0; if (ord == 0) { ords[slot] = NULL_ORD; values[slot] = null; } else { ords[slot] = ord; if (values[slot] == null) { values[slot] = new BytesRef(); } termsIndex.lookup(ord, values[slot]); } readerGen[slot] = currentReaderGen; }
@Override public boolean exists(int doc) { return termsIndex.getOrd(doc) != 0; }