java - lucene 우수 사례 및 스레드 안전성


0 Answers

java multithreading lucene thread-safety

저는 문서를 색인화하고 검색을 수행하기 위해 lucene을 사용하고 있습니다. 검색을 수행하면 즉시 삭제됩니다. 이 모든 것은 다음 단계를 포함하는 다소 원자 적 행동으로 간주 될 수 있습니다.

색인 (작가) -> 검색 (검색 자) -> 점수 별 문서 가져 오기 (리더) -> 문서 삭제 (리더)

이 작업은 동일한 인덱스에서 여러 동시 스레드가 수행 할 수 있습니다 ( FSDirectory 사용).

중요 사항 : 각 스레드는 별도의 문서 집합을 처리하므로 한 스레드가 다른 스레드의 문서에 손을 대지 않습니다.

그 목적을 위해 몇 가지 질문이 있습니다.

1) 내가 IndexWriter , IndexReaderIndexSearcher 의 단일 인스턴스 (모든 스레드에 대해)를 IndexReader 합니까? (그들은 스레드 안전 해야하는거야)

2) IndexWriter 가 색인을 조작하고 IndexReader 문서를 삭제할 수 있습니까? 그 일을하기 위해 다른 하나를 닫아야합니까? 즉, 하나의 쓰레드가 인덱스에 쓰는 동안 다른 하나가 인덱스에서 삭제 될 수있다. (앞에서 언급했듯이, 나는 별도의 데이터 세트를 처리 할 수있다)

3) 다른 좋은 습관과 제안이 있으면 감사하게 생각합니다.

고마워요!



Related