簡體   English   中英

Lucene:如何在索引期間獲取實時索引信息? (索引大小和期限計數)

[英]Lucene: How to get real-time index information during indexing? (Index size and term count)

我想在索引過程中實時獲取有關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完成對文本文件的索引時,我都會輸出term_numberindex_MB_size每個索引文件大約10MB,全部大約600MB)。 這樣我得到約60對結果。 但我悲哀地發現60對的2個變量始終為0。只有當索引段結束時,統計信息將顯示一個非零的結果。

我猜這是由於CheckIndex類只能在索引完成后才能正常工作而引起的。 但是我還沒有檢查。

如何實時獲取信息? 此外,CheckIndex過程確實很耗時,是否還有其他更好的方法來獲取信息的兩個方面(索引大小和術語編號)?

我終於在《 Lucene In Action 2nd Edition 》一書中找到了答案。

這是因為IndexReaderCheckIndex僅在IndexWriter調用commit()方法之后才能看到索引的更改。 CommitFlush非常不同,因為flush僅將所有緩沖的數據刷新到磁盤,而Commit將首先進行刷新 ,然后使所有更改對IndexReader可見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM