查找Lucene索引中的文档数

czfnxgou  于 2022-11-07  发布在  Lucene
关注(0)|答案(5)|浏览(169)

使用Lucene的Java版本,您将如何找出索引中的文档数?

2g32fytz

2g32fytz1#

IndexReader包含您需要的方法,特别是numDocs
http://lucene.apache.org/core/3_6_0/api/all/org/apache/lucene/index/IndexReader.html#numDocs()

rggaifut

rggaifut2#

官方文件:http://lucene.apache.org/java/2_4_0/api/org/apache/lucene/index/IndexReader.html#numDocs()

qlckcl4x

qlckcl4x3#

使用java你可以找到这样的文档数量:

IndexReader reader = IndexReader.open(FSDirectory.open(indexDirectory));
System.out.println(reader.maxDoc()); //this will give ya what you need.
6ju8rftf

6ju8rftf4#

对于使用IndexReader的最新Lucene版本,下面的Kotlin代码片段可以完成这项工作:

DirectoryReader.open(directory).use { reader ->
    println(reader.numDocs())
}

其中directory是包含索引的Directory的示例。

jk9hmnmh

jk9hmnmh5#

在使用Hibernate搜索时,可以通过Hibernate搜索API获取Lucene IndexReader示例,然后使用前面的答案中提到的reader.numDocs()

FullTextEntityManager fullTextEntityManager = org.hibernate.search.jpa.Search.getFullTextEntityManager(get‌​EntityManager());
IndexReader reader = fullTextEntityManager.getSearchFactory().getIndexReaderAcces‌​sor().open(MyEntity1‌​.class, MyEntity2.class ...);
int numDocs = reader.numDocs();

相关问题