2014-10-29 3 views
1

우리는 4 개의 서로 다른 데이터 세트를 가지고 있으며 그것들에 대해 패싯 검색을 수행하려고합니다. 현재 SolrCloud를 사용 중이며 Solr에 색인을 만들기 전에 이러한 데이터 세트를 병합합니다. 비록 우리가 관계형 데이터를 가지고 있지만, 우리의 주요 목표는면 검색 (faceted search)이고 Solr은 올바른 선택처럼 보였습니다. 우리의 데이타의하나의 solr 컬렉션 아래에서 컬렉션 스키마의 필드 하위 집합으로 된 문서를 가질 수 있습니까?

거친 구조 :

Dataset1(col1, col2, col3,col4) 
Dataset2(col1,col6,col7,col8) 
Dataset3(col6,col9,col10) 

병합 된 데이터 세트 : dataset(col1,col2,col3,col4,col6,col7,col8,col9,col10).

결국 하나의 공통 구조를 갖도록 평탄화되었으며 값이없는 곳에서는 null이 발생했습니다. 지금까지 Solr은 훌륭하게 작동합니다.

문제 : 이제 추가 데이터 세트가 제공되며 각 데이터 세트에는 약 50-60 개의 열이 있습니다. 기술적으로, 나는 여전히 이것들을 평평하게 할 수 있지만, 나는 그것이 좋은 생각이라고 생각하지 않는다. 각 데이터 세트마다 다른 스키마가있는 여러 컬렉션을 가질 수 있다는 것을 알고 있습니다. 그러나 우리는 하나의 스키마가 필요하기 때문에이 문서에서 그룹별로 수행합니다.

스키마를 병합하지 않고 하나의 컬렉션에서 스키마의 하위 집합으로 문서를 유지 관리 할 수있는 방법이 있습니까? 그렇지 않다면이 문제에 대한 더 나은 해결책이 있습니까? 예를 들어

:

DocA(field1, field2) DocB(field3,field4). 
Schema(field1, field2, field3, field4). 

우리가 DOCA 및 DocB 위의 스키마를 하나의 콜렉션에서 할 수 있습니까?

우리의 백엔드는 Cloudera Hadoop (CDH4.6 및 5.2) 배포 위에 있으며 가능한 솔루션을 위해 Hadoop 에코 시스템에 속한 도구를 선택할 수 있습니다.

+0

질문에 대한 답변을 얻었습니까? 공유 할 수 있다면 좋을 것입니다. 나는 똑같은 것을 찾고있다. – Ethan

답변

0

물론 각 문서마다 고유 한 키만 있으면됩니다. 고정 solr 스키마를 정의한 경우 dynamicfield가 도움이 될 수 있습니다.

+0

응답 해 주셔서 감사합니다. 내 질문에 내가 충분히 명확하지 않을 수 있습니다. 콜렉션 A에 col1, col2, col3, col4, col5, col6, col7과 같은 스키마가 있다고 가정합니다. 내 document1이 (col1, col2, col3)이면 document2는 (col2, col4, col5)이고 document 3은 (col5, col6, col7)입니다. 이 기부 사항을 직접 A로 색인화 할 수 있습니까? 또한 내 스키마가 고정되어 있지 않고 다른 구조의 새 문서가 들어올 때 스키마의 필드 수가 변경됩니다. – imascodi