2014-05-14 2 views
2

메타 데이터 개체와 연결된 수백만 개의 문자열을 인덱싱하려고합니다.Solr에서 메타 데이터 필드 중복

각 메타 데이터 개체는 n 수천 개의 문자열을 가질 수 있습니다.

문자열 콘텐츠와 관련 개체 메타 데이터를 모두 검색 할 수 있어야합니다.

현재 관련 메타 데이터 필드의 복사본을 각 문자열로 인덱싱하는 중입니다. 따라서 엄청난 양의 복제와 엄청나게 큰 인덱스 크기가 발생합니다.

관계형 데이터베이스 모델에서는 메타 데이터의 복사본 하나를 저장하고 결합 된 필드로 필터링하고 검색 할 수 있도록 테이블을 조인 할 수 있지만 Solr에서이 중복을 제거 할 수있는 방법은 없습니다.

뭔가 실종 된 것이 있습니까? 아니면 Solr이 작업에 대한 잘못된 도구입니까?

답변

1

Solr은 support for join이며, 이는 관계형 데이터베이스 용어로 조인하는 것보다 서브 쿼리와 유사하지만 원하는대로 할 수 있습니다. Solr은 쿼리와 일치하는 하나 이상의 문자열을 가진 메타 데이터 객체를 반환하게 할 수 있습니다. 다른 비 조인 쿼리를 사용하면 일치하는 문자열을 찾을 수 있습니다. (참고 : This SO question은 아직 하나의 쿼리로 메타 데이터 개체와 일치하는 문자열을 모두 가져올 수없는 이유를 설명합니다.) 메타 데이터 개체와 문자열이 1 대 N 관계가 있다면 block join도 조사해야합니다 그러한 관계. 상위 문서로 메타 데이터 개체를 인덱싱하고 하위 문서로 문자열을 인덱싱 할 수 있습니다.

+0

그래서 일치하는 하위 집합을 얻으려면 일치하는 각 부모에 대해 별도의 쿼리를 만들어야합니다. 분리 된 쿼리에서 모든 자식 일치를 정렬 할 수있는 방법은 없습니다. 맞습니까? – Aeon

관련 문제