2012-11-20 1 views
0

웹 응용 프로그램에서 Lucene을 사용하고 있습니다. 기사를 추가하면 Lucene이 색인을 작성하는 데 사용됩니다. 색인 디렉토리에 대해 하나의 IndexWriter 인스턴스 만 존재할 수 있으므로 응용 프로그램에 대해 싱글 톤 IndexWriter을 사용합니다.Lucapp을 사용하는 webapp에서 싱글 톤 IndexWriter를 닫을 때?

  1. 모든 문서를 인덱스 디렉토리에 커밋하려면 언제 끝내야합니까?
  2. 웹 서버 (tomcat)가 다운되면 어떻게 커밋되지 않은 문서를 복구해야합니까? Lucene이 사고로부터 복구 할 수있는 방법을 제안 했습니까?

답변

0

모든 문서를 인덱스 디렉토리에 저장하려면 IndexWriter를 닫아야합니까?

데이터 손실이 걱정된다면 가능한 한 자주 커밋하십시오 (각 문서 이후에도 가능). 검색의 신선도가 중요하지 않은 경우 오래된 독자를 계속 붙잡고 나중에 다시 열 수 있습니다.

웹 서버 (tomcat)가 다운되면 어떻게 커밋되지 않은 문서를 복구해야합니까? Lucene이 사고로부터 복구 할 수있는 방법을 제안 했습니까?

루씬은 원자입니다 - 바로 당신이 writer.commit() 또는 writer.close()을 종료로, 변경 사항 디스크에 유지되어 나중에 읽을 수 있습니다. 나는 이것이 충분해야한다고 생각한다.

잊지 말것 : Lucene은 검색 라이브러리 일뿐입니다. 응용 프로그램이 충돌하지 않도록하는 것은 사용자의 책임입니다. 그렇게하더라도 복구 전략을 구현하는 것은 귀하의 책임입니다. Lucene은 이미 원자성에 관해 꽤 괜찮은 일을합니다.