@Override public int numDocs() { // Don't call ensureOpen() here (it could affect performance) return in.numDocs(); }
@Override public int numDocs() { return reader.numDocs(); }
protected LeafReader[] wrap(List<? extends LeafReader> readers) { List<LeafReader> wrapped = new ArrayList<>(readers.size()); for (LeafReader reader : readers) { LeafReader wrap = wrap(reader); assert wrap != null; if (wrap.numDocs() != 0) { wrapped.add(wrap); } } return wrapped.toArray(new LeafReader[0]); }
private DocMap[] buildDeletionDocMaps(List<CodecReader> readers) { int totalDocs = 0; int numReaders = readers.size(); DocMap[] docMaps = new DocMap[numReaders]; for (int i = 0; i < numReaders; i++) { LeafReader reader = readers.get(i); Bits liveDocs = reader.getLiveDocs(); final PackedLongValues delDocMap; if (liveDocs != null) { delDocMap = removeDeletes(reader.maxDoc(), liveDocs); } else { delDocMap = null; } final int docBase = totalDocs; docMaps[i] = new DocMap() { @Override public int get(int docID) { if (liveDocs == null) { return docBase + docID; } else if (liveDocs.get(docID)) { return docBase + (int) delDocMap.get(docID); } else { return -1; } } }; totalDocs += reader.numDocs(); } return docMaps; }
final LeafReader first = parallelReaders[0]; this.maxDoc = first.maxDoc(); this.numDocs = first.numDocs(); this.hasDeletions = first.hasDeletions(); } else {
protected final DocsStats docsStats(IndexReader indexReader) { long numDocs = 0; long numDeletedDocs = 0; long sizeInBytes = 0; // we don't wait for a pending refreshes here since it's a stats call instead we mark it as accessed only which will cause // the next scheduled refresh to go through and refresh the stats as well for (LeafReaderContext readerContext : indexReader.leaves()) { // we go on the segment level here to get accurate numbers final SegmentReader segmentReader = Lucene.segmentReader(readerContext.reader()); SegmentCommitInfo info = segmentReader.getSegmentInfo(); numDocs += readerContext.reader().numDocs(); numDeletedDocs += readerContext.reader().numDeletedDocs(); try { sizeInBytes += info.sizeInBytes(); } catch (IOException e) { logger.trace(() -> new ParameterizedMessage("failed to get size for [{}]", info.info.name), e); } } return new DocsStats(numDocs, numDeletedDocs, sizeInBytes); }
@Override public int numDocs() { // Don't call ensureOpen() here (it could affect performance) return in.numDocs(); }
@Override public int numDocs() { // Don't call ensureOpen() here (it could affect performance) return in.numDocs(); }
@Override public int numDocs() { // Don't call ensureOpen() here (it could affect performance) return in.numDocs(); }
@Override public int numDocs() { return reader.numDocs(); }
@Override public int numDocs() { return reader.numDocs(); }
@Override public int numDocs() { return reader.numDocs(); }
protected LeafReader[] wrap(List<? extends LeafReader> readers) { List<LeafReader> wrapped = new ArrayList<>(readers.size()); for (LeafReader reader : readers) { LeafReader wrap = wrap(reader); assert wrap != null; if (wrap.numDocs() != 0) { wrapped.add(wrap); } } return wrapped.toArray(new LeafReader[0]); }
private DocMap[] buildDeletionDocMaps(List<CodecReader> readers) { int totalDocs = 0; int numReaders = readers.size(); DocMap[] docMaps = new DocMap[numReaders]; for (int i = 0; i < numReaders; i++) { LeafReader reader = readers.get(i); Bits liveDocs = reader.getLiveDocs(); final PackedLongValues delDocMap; if (liveDocs != null) { delDocMap = removeDeletes(reader.maxDoc(), liveDocs); } else { delDocMap = null; } final int docBase = totalDocs; docMaps[i] = new DocMap() { @Override public int get(int docID) { if (liveDocs == null) { return docBase + docID; } else if (liveDocs.get(docID)) { return docBase + (int) delDocMap.get(docID); } else { return -1; } } }; totalDocs += reader.numDocs(); } return docMaps; }
CollapseLeafCollector(LeafReaderContext context) throws IOException { this.context = context; final LeafReader reader = context.reader(); sdv = reader.getSortedDocValues(fieldName); final int numDocs = reader.numDocs(); docIds = new Int2IntOpenHashMap(numDocs); scores = new Int2FloatOpenHashMap(numDocs); scores.defaultReturnValue(-1); count = new Int2IntOpenHashMap(numDocs); count.defaultReturnValue(0); }
public TokenRangesLeafReader(DirectoryReader directoryReader, LeafReader in, Query query, TokenRangesBitsetFilterCache cache) throws IOException { super(in); try { in.addCoreClosedListener(cache); ElasticsearchDirectoryReader.addReaderCloseListener(directoryReader, cache); //in.addReaderClosedListener(cache); this.mask = cache.getBitSet(query, in.getContext()); if (mask == null) { numDocs = 0; hasDeletions = true; noBitMatch = new Bits.MatchNoBits(in.maxDoc()); } else { numDocs = mask.cardinality(); hasDeletions = numDocs < in.numDocs() || in.hasDeletions(); noBitMatch = null; } } catch (ExecutionException e) { throw new IOException(e); } }
final LeafReader first = parallelReaders[0]; this.maxDoc = first.maxDoc(); this.numDocs = first.numDocs(); this.hasDeletions = first.hasDeletions(); } else {
final LeafReader first = parallelReaders[0]; this.maxDoc = first.maxDoc(); this.numDocs = first.numDocs(); this.hasDeletions = first.hasDeletions(); } else {
protected final DocsStats docsStats(IndexReader indexReader) { long numDocs = 0; long numDeletedDocs = 0; long sizeInBytes = 0; // we don't wait for a pending refreshes here since it's a stats call instead we mark it as accessed only which will cause // the next scheduled refresh to go through and refresh the stats as well for (LeafReaderContext readerContext : indexReader.leaves()) { // we go on the segment level here to get accurate numbers final SegmentReader segmentReader = Lucene.segmentReader(readerContext.reader()); SegmentCommitInfo info = segmentReader.getSegmentInfo(); numDocs += readerContext.reader().numDocs(); numDeletedDocs += readerContext.reader().numDeletedDocs(); try { sizeInBytes += info.sizeInBytes(); } catch (IOException e) { logger.trace(() -> new ParameterizedMessage("failed to get size for [{}]", info.info.name), e); } } return new DocsStats(numDocs, numDeletedDocs, sizeInBytes); }
Segment segment = new Segment(info.info.name); segment.search = true; segment.docCount = reader.reader().numDocs(); segment.delDocCount = reader.reader().numDeletedDocs(); segment.version = info.info.getVersion();