private CloseableIterator<String> search(SeekableLineReader slr, final String key, boolean lessThan, Comparator<String> comparator) throws IOException { long min = binaryFindOffset(slr, key, comparator); if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine(String.format("Aligning(%d)",min)); } slr.seek(min); String line; if (min > 0) { slr.skipLine(); } String prev = null; while(true) { line = slr.readLine(); if (line == null) break; if (comparator.compare(line, key) >= 0) break; prev = line; } if (!lessThan) { prev = null; } return new CachedStringIterator(slr, prev, line); }
blocklines = cluster.getCDXIterator(new CachedStringIterator( startAndEndBlocks[0], startAndEndBlocks[1]), start, end, 0, 1);
blocklines = cluster.getCDXIterator(new CachedStringIterator( startAndEndBlocks[0], startAndEndBlocks[1]), start, end, 0, 1);
private CloseableIterator<String> search(SeekableLineReader slr, final String key, boolean lessThan, Comparator<String> comparator) throws IOException { long min = binaryFindOffset(slr, key, comparator); if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine(String.format("Aligning(%d)",min)); } slr.seek(min); String line; if (min > 0) { slr.skipLine(); } String prev = null; while(true) { line = slr.readLine(); if (line == null) break; if (comparator.compare(line, key) >= 0) break; prev = line; } if (!lessThan) { prev = null; } return new CachedStringIterator(slr, prev, line); }
private CloseableIterator<String> search(SeekableLineReader slr, final String key, boolean lessThan, Comparator<String> comparator) throws IOException { long min = binaryFindOffset(slr, key, comparator); if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine(String.format("Aligning(%d)",min)); } slr.seek(min); String line; if (min > 0) { slr.skipLine(); } String prev = null; while(true) { line = slr.readLine(); if (line == null) break; if (comparator.compare(line, key) >= 0) break; prev = line; } if (!lessThan) { prev = null; } return new CachedStringIterator(slr, prev, line); }