@Override public int nextDoc() throws IOException { if (remaining == 0) { return currentDocId = NO_MORE_DOCS; } while (true) { currentDocId = parentsIterator.nextDoc(); if (currentDocId == DocIdSetIterator.NO_MORE_DOCS) { return currentDocId; } bytesValues.setDocument(currentDocId); long index = parentIds.find(bytesValues.nextValue(), bytesValues.currentValueHash()); if (index != -1) { currentScore = scores.get(index); remaining--; return currentDocId; } } }