2013-05-22 3 views
0

나는 다중 사용자 시스템을 가지고 있습니다. 각 사용자는 색인 생성이 가능한 콘텐츠를 만들지 만 각 사용자는 자신의 콘텐츠 만 검색 할 수 있습니다.Lucene의 여러 사용자로부터 데이터를 색인화하는 가장 좋은 방법은 무엇입니까

더 좋은 방법은 무엇입니까?

  1. 단일 디렉토리 색인을 생성하고 거기에 모든 것을 색인화 한 다음 검색시 필터링합니다.
  2. 나는 두 번째 옵션 갈 것이다, 각 클라이언트에 대한 디렉토리 인덱스를 생성하고 사용자의 콘텐츠 중 데이터를 공유 할 필요가없는 경우 모든
+0

더 많은 사용자 또는 파일이 있습니까? –

+0

"디렉토리"가되어야합니다 – Falci

+2

디렉토리 이름을 자유롭게 선택할 수 있습니까? 사용자의 이름을 따서 명명 할 수 있습니다. 하지만 많은 사용자가있을 경우 10 000 000 개의 디렉토리가 필요하지 않습니다. –

답변

1

결과 보여줍니다. 필터링을 사용하면 오버 헤드가 증가하고 코퍼스가 커질수록 검색 시간이 오래 걸릴 수 있습니다. 확장 성 문제, 불필요한 GC 오버 헤드 등은 말할 것도 없습니다.

매번 사용자마다 인덱스를 열거 나 닫아야하기 때문에 필드 캐시의 이점을 누릴 수있는 단점이 있습니다. 그러나 어떤 사용자가 아직 활동 중인지 파악하고 독자가 계속 열어 둘 수 있다면이를 완화 할 수 있습니다.

Sotirios Delimanolis는 10M 디렉터리가 관리하기에 어려움이 있다는 지적을 제기했습니다. 이것은 유효한 지적입니다 - 단일 디렉토리의 많은 파일/디렉토리는 대부분의 파일 시스템에서 확장되지 않습니다. 그러나이 디렉토리들을 항상 배포하여 nice balanced tree을 형성 할 수 있습니다.

관련 문제