Example usage for org.apache.lucene.index IndexReader numDocs

List of usage examples for org.apache.lucene.index IndexReader numDocs

Introduction

In this page you can find the example usage for org.apache.lucene.index IndexReader numDocs.

Prototype

public abstract int numDocs();

Source Link

Document

Returns the number of documents in this index.

Usage

From source file:org.hibernate.search.test.bridge.ArrayBridgeTest.java

License:Open Source License

private int countSizeForType(Class<?> type) {
    SearchFactory searchFactory = fullTextSession.getSearchFactory();
    int numDocs = -1; // to have it fail in case of errors
    IndexReader locationIndexReader = searchFactory.getIndexReaderAccessor().open(type);
    try {/* ww  w .j  a v a  2 s  . c o m*/
        numDocs = locationIndexReader.numDocs();
    } finally {
        searchFactory.getIndexReaderAccessor().close(locationIndexReader);
    }
    return numDocs;
}

From source file:org.hibernate.search.test.configuration.indexingStrategy.ManualIndexingStrategyTest.java

License:LGPL

private int getDocumentNbr() throws Exception {
    // we directly access the index to verify the document count
    IndexReader reader = IndexReader.open(getDirectory(TestEntity.class));
    try {//w  w  w  . j  a  v a2s . c  o  m
        return reader.numDocs();
    } finally {
        reader.close();
    }
}

From source file:org.hibernate.search.test.embedded.graph.RecursiveGraphTest.java

License:Open Source License

private int getDocumentNbr(Class type) throws Exception {
    IndexReader reader = IndexReader.open(getDirectory(type), false);
    try {/*from  w  w  w. j  av a 2 s  . c om*/
        return reader.numDocs();
    } finally {
        reader.close();
    }
}

From source file:org.hibernate.search.test.engine.optimizations.deletebyterm.DeleteByTermTest.java

License:LGPL

@Test
public void testRelatedHierarchiesWithRootNonIndexed() throws Exception {
    // Create two entities whose root entity is common but not indexed
    // delete by term should be used
    // create a unrelated Lucene Document with the same id
    // it should be deleted when the entity sharing the id is deleted
    FullTextSessionBuilder sessionBuilder = new FullTextSessionBuilder();
    sessionBuilder.addAnnotatedClass(ASubOfRoot.class).addAnnotatedClass(BSubOfRoot.class).build();
    FullTextSession fts = sessionBuilder.openFullTextSession();
    fts.beginTransaction();/*w ww  .ja  v a  2 s  . co m*/
    ASubOfRoot a = new ASubOfRoot();
    a.id = "1";
    a.name = "Foo";
    fts.persist(a);
    BSubOfRoot b = new BSubOfRoot();
    b.id = "2";
    b.otherName = "Bar";
    fts.persist(b);
    fts.getTransaction().commit();

    fts.clear();

    // add a document that matches the entity a identifier to see if it is removed when the entity is removed
    DirectoryBasedIndexManager indexManager = (DirectoryBasedIndexManager) fts.getSearchFactory()
            .unwrap(SearchIntegrator.class).getIndexManager("index1");
    WorkspaceHolder backendProcessor = (WorkspaceHolder) indexManager.getWorkspaceHolder();
    IndexWriter writer = backendProcessor.getIndexResources().getWorkspace().getIndexWriter();
    Document document = new Document();
    document.add(new StringField("id", "1", org.apache.lucene.document.Field.Store.NO));
    document.add(new TextField("name", "Baz", org.apache.lucene.document.Field.Store.NO));
    writer.addDocument(document);
    writer.commit();

    fts.getTransaction().begin();
    fts.delete(fts.get(ASubOfRoot.class, a.id));
    fts.delete(fts.get(BSubOfRoot.class, b.id));
    fts.getTransaction().commit();
    fts.close();

    // Verify that the index is empty
    IndexReader indexReader = fts.getSearchFactory().getIndexReaderAccessor().open("index1");
    try {
        assertThat(indexReader.numDocs()).isEqualTo(0);
    } finally {
        indexReader.close();
    }
    sessionBuilder.close();
}

From source file:org.hibernate.search.test.engine.optimizations.deletebyterm.DeleteByTermTest.java

License:LGPL

@Test
public void testUnrelatedHierarchies() throws Exception {
    // Create two entities whose root entities are unrelated
    // delete by term should not be used
    // create a unrelated Lucene Document with the same id
    // it should not be deleted when the entity sharing the id is deleted
    FullTextSessionBuilder sessionBuilder = new FullTextSessionBuilder();
    sessionBuilder.addAnnotatedClass(ASubOfRoot.class).addAnnotatedClass(Unrelated.class).build();
    FullTextSession fts = sessionBuilder.openFullTextSession();
    fts.beginTransaction();//from ww w .ja  va2 s . co  m
    ASubOfRoot a = new ASubOfRoot();
    a.id = "1";
    a.name = "Foo";
    fts.persist(a);
    Unrelated b = new Unrelated();
    b.id = "2";
    b.name = "Bar";
    fts.persist(b);
    fts.getTransaction().commit();

    fts.clear();

    // add a document that matches the entity a identifier to see if it is removed when the entity is removed
    DirectoryBasedIndexManager indexManager = (DirectoryBasedIndexManager) fts.getSearchFactory()
            .unwrap(SearchIntegrator.class).getIndexManager("index1");
    WorkspaceHolder backendProcessor = (WorkspaceHolder) indexManager.getWorkspaceHolder();
    IndexWriter writer = backendProcessor.getIndexResources().getWorkspace().getIndexWriter();
    Document document = new Document();
    document.add(new StringField("id", "1", org.apache.lucene.document.Field.Store.NO));
    document.add(new TextField("name", "Baz", org.apache.lucene.document.Field.Store.NO));
    writer.addDocument(document);
    writer.commit();

    fts.getTransaction().begin();
    fts.delete(fts.get(ASubOfRoot.class, a.id));
    fts.delete(fts.get(Unrelated.class, b.id));
    fts.getTransaction().commit();
    fts.close();

    // Verify that the index is empty
    IndexReader indexReader = fts.getSearchFactory().getIndexReaderAccessor().open("index1");
    try {
        assertThat(indexReader.numDocs()).isEqualTo(1);
    } finally {
        indexReader.close();
    }
    sessionBuilder.close();
}

From source file:org.hibernate.search.test.engine.TransactionTest.java

License:LGPL

private int getDocumentNumber() throws IOException {
    IndexReader reader = DirectoryReader.open(getDirectory(Document.class));
    try {/* w  ww .j av a  2  s  . c om*/
        return reader.numDocs();
    } finally {
        reader.close();
    }
}

From source file:org.hibernate.search.test.FSDirectoryTest.java

License:Open Source License

public void testEventIntegration() throws Exception {

    Session s = getSessions().openSession();
    s.getTransaction().begin();/*  w w  w  .ja v  a  2s .c o  m*/
    s.persist(
            new Document("Hibernate in Action", "Object/relational mapping with Hibernate", "blah blah blah"));
    s.getTransaction().commit();
    s.close();

    Directory dir = FSDirectory.open(new File(getBaseIndexDir(), "Documents"));
    try {
        IndexReader reader = IndexReader.open(dir, true);
        try {
            int num = reader.numDocs();
            assertEquals(1, num);
            TermDocs docs = reader.termDocs(new Term("Abstract", "hibernate"));
            assertTrue(docs.next());
            org.apache.lucene.document.Document doc = reader.document(docs.doc());
            assertFalse(docs.next());
            docs = reader.termDocs(new Term("title", "action"));
            assertTrue(docs.next());
            doc = reader.document(docs.doc());
            assertFalse(docs.next());
            assertEquals("1", doc.getField("id").stringValue());
        } finally {
            reader.close();
        }

        s = getSessions().openSession();
        s.getTransaction().begin();
        Document entity = (Document) s.get(Document.class, Long.valueOf(1));
        entity.setSummary("Object/relational mapping with EJB3");
        s.persist(new Document("Seam in Action", "", "blah blah blah blah"));
        s.getTransaction().commit();
        s.close();

        reader = IndexReader.open(dir, true);
        try {
            int num = reader.numDocs();
            assertEquals(2, num);
            TermDocs docs = reader.termDocs(new Term("Abstract", "ejb"));
            assertTrue(docs.next());
            org.apache.lucene.document.Document doc = reader.document(docs.doc());
            assertFalse(docs.next());
        } finally {
            reader.close();
        }

        s = getSessions().openSession();
        s.getTransaction().begin();
        s.delete(entity);
        s.getTransaction().commit();
        s.close();

        reader = IndexReader.open(dir, true);
        try {
            int num = reader.numDocs();
            assertEquals(1, num);
            TermDocs docs = reader.termDocs(new Term("title", "seam"));
            assertTrue(docs.next());
            org.apache.lucene.document.Document doc = reader.document(docs.doc());
            assertFalse(docs.next());
            assertEquals("2", doc.getField("id").stringValue());
        } finally {
            reader.close();
        }
    } finally {
        dir.close();
    }

    s = getSessions().openSession();
    s.getTransaction().begin();
    s.delete(s.createCriteria(Document.class).uniqueResult());
    s.getTransaction().commit();
    s.close();
}

From source file:org.hibernate.search.test.indexingStrategy.ManualIndexingStrategyTest.java

License:Open Source License

private int getDocumentNbr() throws Exception {
    IndexReader reader = IndexReader.open(getDirectory(Document.class), false);
    try {// w  ww . j  a  v a  2  s .  c o m
        return reader.numDocs();
    } finally {
        reader.close();
    }
}

From source file:org.hibernate.search.test.reader.nrtreaders.BasicNRTFunctionalityTest.java

License:Open Source License

private int getDocumentNbrFromReaderProvider(NRTIndexManager indexManager) {
    IndexReader reader = indexManager.getReaderProvider().openIndexReader();
    try {//from  www.  ja  v a 2  s.  c  o m
        return reader.numDocs();
    } finally {
        indexManager.getReaderProvider().closeIndexReader(reader);
    }
}

From source file:org.hibernate.search.test.reader.nrtreaders.BasicNRTFunctionalityTest.java

License:Open Source License

private int getDocumentNbrFromFilesystem(NRTIndexManager documentsIndexManager) throws Exception {
    IndexReader reader = IndexReader.open(documentsIndexManager.getDirectoryProvider().getDirectory(), true);
    try {/*w w w  .ja v a  2s  .  c o  m*/
        return reader.numDocs();
    } finally {
        reader.close();
    }
}