색인 생성 프로세스 중에 Lucene의 인덱스에 대한 정보를 실시간으로 얻고 싶습니다. 따라서 다음과 같이 코드에서 CheckIndex 클래스를 사용합니다.Lucene : 색인 생성 중에 실시간 색인 정보를 얻는 방법? (인덱스 크기 및 용어 개수)
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 인 것을 알면 슬프다. 인덱스 세그먼트가 끝나면 통계 정보에 0이 아닌 결과가 표시됩니다.
색인 생성이 완료된 후에야 CheckIndex 클래스가 올바르게 작동 할 수 있다고 생각됩니다. 그러나 나는 체크하지 않았다.
어떻게 정보를 실시간으로 얻을 수 있습니까? 또한 CheckIndex 프로세스는 실제로 많은 시간이 소요됩니다. 정보의 두 측면 (인덱스 크기 및 용어 번호)을 얻는 다른 방법이 있습니까?