我们有4种不同的数据集,并希望对它们进行分面搜索。 我们目前正在使用SolrCloud并在将这些数据集索引到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)
。
最后,我们将它们展平为具有一个共同结构并且具有不存在值的空值。到目前为止,索尔效果很好。
问题:现在我们有其他数据集,每个数据集都有大约50-60列。从技术上讲,我仍然可以将它们弄平,但我认为这不是一个好主意。我知道我可以为每个数据集设置不同的模式。但是,我们在这些文档上执行分组,因此我们需要一个模式。
有没有办法在一个集合下维护具有模式字段子集的文档而不展平它们?如果没有,是否有更好的解决方案来解决这个问题?
例如:
DocA(field1, field2) DocB(field3,field4).
Schema(field1, field2, field3, field4).
我们可以在具有上述架构的一个集合下拥有DocA和DocB吗?
我们的后端位于Cloudera Hadoop(CDH4.6和5.2)发行版之上,我们可以选择任何属于Hadoop生态系统的工具来寻找可能的解决方案。
答案 0 :(得分:0)
当然可以,他们只需要为每个文档使用不同的唯一键。如果您已经定义了固定的solr模式,那么动态字段可能对您有帮助。