我在Product
和Pricing
文档之间创建了父/子关系。 Product
有很多Pricing
,每个都有自己的subtotal
字段,我只想创建一个范围聚合,只考虑每个的最小小计产品并过滤掉其他产品。
我认为这可以使用嵌套聚合和过滤器,但这是我最接近的:
POST /test_index/Product/_search
{
"aggs": {
"offered-at": {
"children": {
"type": "Pricing"
},
"aggs": {
"prices": {
"aggs": {
"min_price": {
"min": {
"field": "subtotal"
},
"aggs": {
"min_price_buckets": {
"range": {
"field": "subtotal",
"ranges": [
{
"to": 100
},
{
"from": 100,
"to": 200
},
{
"from": 200
}
]
}
}
}
}
}
}
}
}
}
}
然而,这会导致错误nested: AggregationInitializationException[Aggregator [min_price] of type [min] cannot accept sub-aggregations]; }]
,这是有道理的,因为一旦减少到单个值,就没有任何东西可以聚合。
但是我如何构建它以使范围聚合仅从每组子项中拉出最小值?
(这是一种带映射和测试数据的意义:http://sense.qbox.io/gist/01b072b4566ef6885113dc94a796f3bdc56f19a9)