IndexWriter와 함께 SearcherManager 사용에 관한 몇 가지 기본적인 질문이 있습니다.SearchManager에서 IndexWriter 사용
주기적으로 응용 프로그램에서 Lucene 색인을 다시 작성해야하며 현재는 검색 요청을 처리하는 스레드가 아닌 다른 스레드에서 발생합니다.
- 주기적으로 인덱스를 다시 작성하기 위해 응용 프로그램의 수명 기간 동안 동일한 IndexWriter 인스턴스를 사용할 수 있습니까? 현재는 시작시 한 번만 생성/열기하고 새 인덱스가 생성 될 때마다
IndexWriter#commit
으로 전화하십시오. - 각 검색 요청에 대해
IndexSearcher
인스턴스를 획득하고 출시하려면SearcherManager
을 사용하고 있습니다. 인덱스가 주기적으로 작성된 후 메소드를 사용하여IndexSearcher
instances.SearcherManager 인스턴스를 새로 고치면 시작 중에 한 번만 작성되며 계속 유지하려고합니다. - 나는 앱의 수명 기간 동안
IndexWriter
또는SearcherManager
을 닫지 않습니다. 질문에 대한 지금
,
- 내가 인덱스를 다시 작성해야 할 때마다 새로운 IndexWriter를 생성하는 경우,
SearcherManager#maybeRefresh
는 새로운 IndexWriter 인스턴스의 것을 감지 할 수있을 것인가? 아니면 새로 생성 된 IndexWriter를 사용하여 새로운 SearcherManager를 생성해야합니까? IndexWriter
을 사용하여 인스턴스를 생성하고DirectoryReader
을 사용하여 생성하거나Directory
을 사용하여 인스턴스를 생성하는 것의 차이점은 무엇입니까?당신이 SearcherManager에서 획득 한 미래의 모든 IndexSearchers 해당 판독기를 기반으로합니다,DirectoryReader로를 구성하는 경우, 즉 모든 검색 것 :