在Elasticsearch中拥有父子结构,代表order
和order_revision
子女我想要生成price
的柱状图,其中显示quantity
的总和。Elasticsearch聚合:每个父代的最新儿童总和
{
"_type": "order",
"_id": "1063220887",
"_score": 1,
"_source": {
"order_id": "1063220887",
"product_id": "10446350",
"timestamp": 1462713302000
}
}
{
"_type": "order_revision",
"_id": "10234234",
"_parent": "1063220887",
"_source": {
"price": 9,
"quantity": 3,
"revision": 361,
"timestamp": 1462712196000
}
}
下面的聚合基本上工作,但返回所有存在的修订的总和。
{
"aggs": {
"orders": {
"filter": {
"has_parent": {
"parent_type": "order"
}
},
"aggs": {
"quantity_per_price": {
"histogram": {
"field": "price",
"interval": 1
}
"aggs": {
"sum": {"field": quantity"}
}
}
}
}
}
}
在最终版本应该只返回quantity
字段的总和为最新版本(最高/最新timestamp
)每一份订单的。 我不完全确定如何拿出这样一个聚合,它由order_id
分组,并只选择最新的孩子,我不知道如果这个父子结构是最好的模型这个数据。
每个订单大约有多少次修订?我们正在谈论1-2或更高的数量,如10-20 +? – Val
大概是10 .... –