회사에서 개발해서 사용 중인
모니터링 시스템 관련 디버깅하다가
잠깐 짤막한 정리
IndexWriter는 하나로 유지하면서 close 없이 Incremental indexing을 계속 실행하고
IndexSearcher는 IndexWriter로부터 IndexReader를 받아와서 새로 생성하면
변경된 사항을 IndexWriter의 commit 여부 상관없이 적용된 Document의 수정 사항을
가져 올 수 있다.
다만 매번 IndexSearcher를 생성하는 것은 부담이 되기 때문에
IndexReader를 체크하여 changed여부를 확인한다.
이러한 롤을 가지고, Searcher Pool을 운용해도 좋을 것 같다는 생각이 들기도 하고...
Document수가 많지 않으면
그냥 매번 생성하는 것도 나쁘지 않을 것 같고..
IndexWriter가 Incremental indexing의 종료 이벤트를 던져주면
그것으로 Searcher를 새로 생성해도 될 것 같은데..
Incremental indexing 의 주기와 건수
Searcher가 실시간으로 적용 사항을 반영해야 하는 이슈가 중요한지등에 따라서
여러가지 방안이 나올 수 있을 듯...