Lucene IndexWriter Debugging

루씬인액션 2판을 읽다가 Debugging Indexing 이라는 내용이 있어서 테스트를 해보았다.

사용법은 IndexWriter에서 setInfoStream으로 PrintStream 만 설정해주면 된다.

IndexWriter가 인덱싱을 진행하면서 나오는 정보들을 보여준다.

아래코드에서는 일반적인 Syteam.out 으로 설정해두었다.

루씬 인덱스의 기본구조를 어느정도 파악하고 있어야지 도움이 될듯하지만, 아무것도 출력안되는 것보단 나으니…

사용코드

 IndexWriter writer = new IndexWriter(
 new NIOFSDirectory(indexDir),
 new StandardAnalyzer(Version.LUCENE_29),
 true,
 IndexWriter.MaxFieldLength.UNLIMITED);
 writer.setUseCompoundFile(false);
 writer.setInfoStream(System.out);
 

출력결과

 FD [main]: setInfoStream deletionPolicy=org.apache.lucene.index.KeepOnlyLastCommitDeletionPolicy@67006d75
 IW 0 [main]: setInfoStream: dir=org.apache.lucene.store.NIOFSDirectory@D:Index autoCommit=false mergePolicy=org.apache.lucene.index.LogByteSizeMergePolicy@4d125127 mergeScheduler=org.apache.lucene.index.ConcurrentMergeScheduler@6d8dfef8 ramBufferSizeMB=16.0 maxBufferedDocs=-1 maxBuffereDeleteTerms=-1 maxFieldLength=2147483647 index=
 IW 0 [main]: optimize: index now
 IW 0 [main]:   flush: segment=_0 docStoreSegment=_0 docStoreOffset=0 flushDocs=true flushDeletes=true flushDocStores=false numDocs=12 numBufDelTerms=0
 IW 0 [main]:   index before flush
 IW 0 [main]: DW: flush postings as segment _0 numDocs=12
 IW 0 [main]: DW:   oldRAMSize=14365696 newFlushedSize=2919140 docs/MB=4.31 new/old=20.32%
 IFD [main]: now checkpoint "segments_1" [1 segments ; isCommit = false]
 IFD [main]: now checkpoint "segments_1" [1 segments ; isCommit = false]
 IW 0 [main]: LMP: findMerges: 1 segments
 IW 0 [main]: LMP:   level 6.2247195 to 6.4652586: 1 segments
 IW 0 [main]: CMS: now merge
 IW 0 [main]: CMS:   index: _0:C12->_0
 IW 0 [main]: CMS:   no more merges pending; now return
 IW 0 [main]: CMS: now merge
 IW 0 [main]: CMS:   index: _0:C12->_0
 IW 0 [main]: CMS:   no more merges pending; now return
 IW 0 [main]: now flush at close
 IW 0 [main]:   flush: segment=null docStoreSegment=_0 docStoreOffset=12 flushDocs=false flushDeletes=true flushDocStores=true numDocs=0 numBufDelTerms=0
 IW 0 [main]:   index before flush _0:C12->_0
 IW 0 [main]:   flush shared docStore segment _0
 IW 0 [main]: DW: closeDocStore: 2 files to flush to segment _0 numDocs=12
 IW 0 [main]: CMS: now merge
 IW 0 [main]: CMS:   index: _0:C12->_0
 IW 0 [main]: CMS:   no more merges pending; now return
 IW 0 [main]: now call final commit()
 IW 0 [main]: startCommit(): start sizeInBytes=0
 IW 0 [main]: startCommit index=_0:C12->_0 changeCount=3
 IW 0 [main]: now sync _0.nrm
 IW 0 [main]: now sync _0.tis
 IW 0 [main]: now sync _0.fnm
 IW 0 [main]: now sync _0.tii
 IW 0 [main]: now sync _0.frq
 IW 0 [main]: now sync _0.fdx
 IW 0 [main]: now sync _0.prx
 IW 0 [main]: now sync _0.fdt
 IW 0 [main]: done all syncs
 IW 0 [main]: commit: pendingCommit != null
 IW 0 [main]: commit: wrote segments file "segments_2"
 IFD [main]: now checkpoint "segments_2" [1 segments ; isCommit = true]
 IFD [main]: deleteCommits: now decRef commit "segments_1"
 IFD [main]: delete "segments_1"
 IW 0 [main]: commit: done
 IW 0 [main]: at close: _0:C12->_0
 Indexing 12 files took 4751 milliseconds

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중