List of usage examples for org.apache.lucene.index IndexReader hasDeletions
public boolean hasDeletions()
From source file:org.eclipse.rdf4j.sail.lucene.LuceneIndex.java
License:Open Source License
private static boolean isDeleted(IndexReader reader, int docId) { if (reader.hasDeletions()) { List<LeafReaderContext> leaves = reader.leaves(); int size = leaves.size(); for (int i = 0; i < size; i++) { Bits liveDocs = leaves.get(i).reader().getLiveDocs(); if (docId < liveDocs.length()) { boolean isDeleted = !liveDocs.get(docId); if (isDeleted) { return true; }// w ww . ja v a 2 s . com } } return false; } else { return false; } }
From source file:org.elasticsearch.search.aggregations.bucket.composite.SingleDimensionValuesSource.java
License:Apache License
/** * Returns true if a {@link SortedDocsProducer} should be used to optimize the execution. *//*w w w . j a v a 2 s . c o m*/ protected boolean checkIfSortedDocsIsApplicable(IndexReader reader, MappedFieldType fieldType) { if (fieldType == null || fieldType.indexOptions() == IndexOptions.NONE || // inverse of the natural order reverseMul == -1) { return false; } if (reader.hasDeletions() && (reader.numDocs() == 0 || (double) reader.numDocs() / (double) reader.maxDoc() < 0.5)) { // do not use the index if it has more than 50% of deleted docs return false; } return true; }
From source file:org.elasticsearch.search.aggregations.bucket.composite.SingleDimensionValuesSourceTests.java
License:Apache License
private static IndexReader mockIndexReader(int maxDoc, int numDocs) { IndexReader reader = mock(IndexReader.class); when(reader.hasDeletions()).thenReturn(maxDoc - numDocs > 0); when(reader.maxDoc()).thenReturn(maxDoc); when(reader.numDocs()).thenReturn(numDocs); return reader; }
From source file:org.elasticsearch.search.query.TopDocsCollectorContext.java
License:Apache License
/** * Returns query total hit count if the <code>query</code> is a {@link MatchAllDocsQuery} * or a {@link TermQuery} and the <code>reader</code> has no deletions, * -1 otherwise.// w ww . j av a2 s .c o m */ static int shortcutTotalHitCount(IndexReader reader, Query query) throws IOException { while (true) { // remove wrappers that don't matter for counts // this is necessary so that we don't only optimize match_all // queries but also match_all queries that are nested in // a constant_score query if (query instanceof ConstantScoreQuery) { query = ((ConstantScoreQuery) query).getQuery(); } else if (query instanceof BoostQuery) { query = ((BoostQuery) query).getQuery(); } else { break; } } if (query.getClass() == MatchAllDocsQuery.class) { return reader.numDocs(); } else if (query.getClass() == TermQuery.class && reader.hasDeletions() == false) { final Term term = ((TermQuery) query).getTerm(); int count = 0; for (LeafReaderContext context : reader.leaves()) { count += context.reader().docFreq(term); } return count; } else { return -1; } }
From source file:org.openrdf.sail.lucene4.LuceneIndex.java
License:BSD License
private static boolean isDeleted(IndexReader reader, int docId) { if (reader.hasDeletions()) { List<AtomicReaderContext> leaves = reader.leaves(); int size = leaves.size(); for (int i = 0; i < size; i++) { Bits liveDocs = leaves.get(i).reader().getLiveDocs(); if (docId < liveDocs.length()) { boolean isDeleted = !liveDocs.get(docId); if (isDeleted) { return true; }// w ww . j a va2s . c om } } return false; } else { return false; } }
From source file:org.springmodules.lucene.index.core.DefaultLuceneIndexTemplate.java
License:Apache License
public boolean hasDeletions() { IndexReader reader = IndexReaderFactoryUtils.getIndexReader(indexFactory); try {/*from w w w . j a v a 2 s .co m*/ return reader.hasDeletions(); } finally { IndexReaderFactoryUtils.releaseIndexReader(indexFactory, reader); } }