我想在索引过程中实时获取Lucene的索引信息。所以我在我的代码中使用了 CheckIndex 类,如下:
CheckIndex.Status indexStatus = checkIndex.checkIndex();
Iterator<CheckIndex.Status.SegmentInfoStatus> iterator = indexStatus.segmentInfos.iterator();
CheckIndex.Status.SegmentInfoStatus temp = null;
while(iterator.hasNext()) {
temp = iterator.next();
term_number += temp.termIndexStatus.termCount;
index_MB_size += temp.sizeMB;
}
起初,索引文件夹是空的。每次 Lucene 完成对文本文件的索引(每个大约 10MB,大约 600MB)时,term_number
我都会输出。index_MB_size
所以我得到了大约 60 对结果。但是我很伤心地发现60对中的2个变量始终为0。只有当索引段结束时,统计信息才会显示非零结果。
我猜这是因为 CheckIndex 类只能在索引完成后才能正常工作。但我没有检查。
如何实时获取信息?另外,CheckIndex这个过程真的很耗时,有没有其他更好的方法来获取这两个方面的信息(索引大小和词条数)?