List of usage examples for org.apache.lucene.index LeafReader hasDeletions
public boolean hasDeletions()
From source file:org.elasticsearch.xpack.core.security.authz.accesscontrol.DocumentSubsetReaderTests.java
License:Open Source License
public void testLiveDocs() throws Exception { int numDocs = scaledRandomIntBetween(16, 128); IndexWriter iw = new IndexWriter(directory, new IndexWriterConfig(new StandardAnalyzer()).setMergePolicy(NoMergePolicy.INSTANCE)); for (int i = 0; i < numDocs; i++) { Document document = new Document(); document.add(new StringField("field", "value" + i, Field.Store.NO)); iw.addDocument(document);// w ww . j a v a2 s . co m } iw.forceMerge(1); iw.close(); openDirectoryReader(); assertThat("should have one segment after force merge", directoryReader.leaves().size(), equalTo(1)); for (int i = 0; i < numDocs; i++) { Query roleQuery = new TermQuery(new Term("field", "value" + i)); DirectoryReader wrappedReader = DocumentSubsetReader.wrap(directoryReader, bitsetFilterCache, roleQuery); LeafReader leafReader = wrappedReader.leaves().get(0).reader(); assertThat(leafReader.hasDeletions(), is(true)); assertThat(leafReader.numDocs(), equalTo(1)); Bits liveDocs = leafReader.getLiveDocs(); assertThat(liveDocs.length(), equalTo(numDocs)); for (int docId = 0; docId < numDocs; docId++) { if (docId == i) { assertThat("docId [" + docId + "] should match", liveDocs.get(docId), is(true)); } else { assertThat("docId [" + docId + "] should not match", liveDocs.get(docId), is(false)); } } } }