【发布时间】:2010-12-02 23:24:27
【问题描述】:
我想获取 Lucene (.Net 2.4) 索引的所有未删除文档的计数,然后读取我存储的所有或一系列这些文档的字段。 阅读 Lucene 帮助后,我不太确定 IndexReader.NumDocs() 是返回所有文档的计数还是仅返回未删除的文档。我可以简单地遍历 IndexReader.Document[] 或者它是否包含已删除的文档?
如果 NumDocs() 和 Docmuent[] 确实 包含已删除和未删除的文档,我想我必须这样做:
int totalCount = reader.NumDocs();
int totalCountUndeleted = totalCount;
for (int iDoc = 0; iDoc < totalCount; iDoc++)
if (reader.IsDeleted(iDoc))
totalCountUndeleted--;
for (int iDoc = 0; iDoc < totalCount; iDoc++)
{
if (!reader.IsDeleted(iDoc))
{
Document doc = reader.Document(iDoc);
// read fields
}
}
这是正确的方法还是有其他可能的方法?谢谢
【问题讨论】:
-
我找到了 reader.NumDeletedDocs()。所以获取 totalCount 更容易: int totalCount = reader.NumDocs() - reader.NumDeletedDocs();
标签: c# lucene lucene.net