我有一个数据类型'产品'它具有字段属性' (动态对象)。 例如,产品可以包含:
attributes: {
"color": "White",
"size": "L",
}
另一种产品可以包含
attributes: {
"color": "Black",
"weight": "12 kg",
}
因此,属性集不是固定的。
我的目标是对找到的产品的所有属性进行分面搜索。 我找到了一种在“聚合”中手动定义每个属性的方法。部分:
"aggregations": {
"attribute_color": {
"terms": {
"field": "attributes.color"
}
},
"attribute_size": {
"terms": {
"field": "attributes.size"
}
)
}
但我事先并不知道会找到哪些属性,所以我想动态制作这个列表。 我假设这可以通过两个步骤完成:找到所有属性键(颜色,大小,重量等),然后对这些字段进行聚合查询。 那么问题是如何从搜索结果中获取所有属性键?
如果我错了,可以一步完成,请指出正确的解决方案。 谢谢!