11

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

4

5 回答 5

17

IndexReader 包含您需要的方法,特别是 numDocs

http://lucene.apache.org/core/3_6_0/api/all/org/apache/lucene/index/IndexReader.html#numDocs()

于 2009-01-14T11:05:18.353 回答
4

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

IndexReader reader = IndexReader.open(FSDirectory.open(indexDirectory));
System.out.println(reader.maxDoc()); //this will give ya what you need.
于 2012-12-25T09:54:25.333 回答
3

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

于 2009-01-14T11:31:35.603 回答
0

使用 Hibernate Search 时,可以IndexReader通过 Hibernate Search API 获取一个 Lucene 实例,然后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();
于 2017-01-31T08:07:16.103 回答
0

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

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

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

于 2021-11-21T12:48:41.057 回答