我已跟踪Elastic's docs并成功查询我的索引以返回两个日期范围的数据。
我能做些什么,是为每个范围添加一个单位的总和。我设法添加了单位金额(请参阅下面的查询),但这只返回整个范围的总和。
我想要实现的是A期与B期的比较。即本周您上周已售出X单位与Y单位,因此%差异为Z.
{
"query":{
"filtered":{
"query":{
"query_string":{
"query":"*",
"analyze_wildcard":true
}
}
}
},
"size":0,
"aggs":{
"vendor_type":{
"terms":{
"field":"vendor_type",
"size":5
},
"aggs":{
"product_type":{
"terms":{
"field":"product_type",
"size":5,
"order":{
"unit_sum":"desc"
}
},
"aggs":{
"range":{
"date_range":{
"field":"date",
"format":"MM-yyy",
"ranges":[
{
"to":"now-1M/M"
},
{
"from":"now-1M/M"
}
]
}
},
"unit_sum":{
"sum":{
"field":"units"
}
}
}
}
}
}
}
}
有人可以帮忙吗?提前谢谢。
答案 0 :(得分:1)
您几乎就在那里,您只需要移动(或复制)unit_sum
聚合内的range
,如下所示:
{
"query": {
"filtered": {
"query": {
"query_string": {
"query": "*",
"analyze_wildcard": true
}
}
}
},
"size": 0,
"aggs": {
"vendor_type": {
"terms": {
"field": "vendor_type",
"size": 5
},
"aggs": {
"product_type": {
"terms": {
"field": "product_type",
"size": 5
},
"aggs": {
"range": {
"date_range": {
"field": "date",
"format": "MM-yyy",
"ranges": [
{
"to": "now-1M/M"
},
{
"from": "now-1M/M"
}
]
},
"aggs": {
"unit_sum": {
"sum": {
"field": "units"
}
}
}
}
}
}
}
}
}
}