2011-08-06 7 views
1

lucene indexWriter 오버 헤드를 만드시겠습니까?

 
IndexWriter myWriter = new IndexWriter(pathOnDisk); 
int segCount = myWriter.GetSegmentCount(); 
if (segCount > 1) 
    myWriter.Optimize(); 
myWriter.Close() 

위의 코드를 50 개의 다른 인덱스 디렉토리로 실행하려면 인덱스 작성기를 여는 데 오버 헤드가 있는지 알고 싶습니까?

답변

0

잠금 파일 만들기 (133 행 참조), 세그먼트 정보 읽기, 비용이 비싸지 않을 수도있는 여러 가지 작업이 포함 된 오버 헤드가 있습니다.

0113 IndexWriter를 열면 사용중인 디렉터리에 대한 잠금 파일이 만들어집니다. 같은 디렉토리에 또 다른 IndexWriter를 열려고 시도하면 (LockObtainFailedException)이됩니다. 같은 디렉토리상의 IndexReader를 사용해 인덱스로부터 문서 를 삭제하면 (자), 그 인덱스의 인덱스가 변경됩니다 (LockObtainFailedException). 가 슬로우됩니다.

라인 816에서 시작하여 java source을 확인하십시오. 이는 작은 생성자가 아니지만 중요성을 판단해야합니다.

관련 문제