我们有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)
.
最后,我们将它们展平,使其具有一个公共结构,并且在不存在值的情况下具有空值。到目前为止solr工作得很好。
问题:现在我们有了更多的数据集,每个数据集都有大约50-60列。从技术上讲,我也可以把这些弄平,但我觉得这不是个好主意。我知道我可以为每个数据集使用不同模式的不同集合。但是,我们对这些文档执行groupby,所以我们需要一个模式。
有没有办法在一个集合下维护包含架构字段子集的文档而不将其展平?如果没有,这个问题有更好的解决办法吗?
例如:
DocA(field1, field2) DocB(field3,field4).
Schema(field1, field2, field3, field4).
我们能用上述模式将doca和docb放在一个集合下吗?
我们的后端位于clouderahadoop(cdh4.6和5.2)发行版之上,我们可以选择属于hadoop生态系统的任何工具作为可能的解决方案。
1条答案
按热度按时间tyg4sfes1#
当然可以,每个文档只需要一个不同的uniquekey。如果您已经定义了一个固定的solr模式,那么dynamicfields也许可以帮助您。