@Override public void forEachOrdinalInDoc(int docId, OrdinalInDocProc proc) { int pointer = lookup[docId]; if (pointer >= 0) { proc.onOrdinal(docId, pointer); } else { pointer = -pointer; int allOrdsIndex = pointer >> parent.storageShift; int ordsIndex = (pointer & ((1 << parent.storageShift) - 1)); int[] ords = ordinals[allOrdsIndex]; int i = ordsIndex; for (; ords[i] > 0; i++) { proc.onOrdinal(docId, ords[i]); } proc.onOrdinal(docId, -ords[i]); } }
@Override public void forEachOrdinalInDoc(int docId, OrdinalInDocProc proc) { for (int[] ordinal : ordinals) { proc.onOrdinal(docId, ordinal[docId]); } }