使用 Sum 的 Elasticsearch 日期范围聚合
Elasticsearch Date Range Aggregation with Sum
我已关注 Elastic's docs 并成功查询了两个日期范围内 return 数据的索引。
我做不对的是在每个范围内添加单位总和。我已经设法添加了一个单位总和(请参阅下面的查询),但这只是 return 整个范围的总和。
我想要实现的是 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"
}
}
}
}
}
}
}
}
有人可以帮忙吗?提前致谢。
你就快完成了,你只需要在 range
聚合中移动(或复制)你的 unit_sum
,就像这样:
{
"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"
}
}
}
}
}
}
}
}
}
}
我已关注 Elastic's docs 并成功查询了两个日期范围内 return 数据的索引。
我做不对的是在每个范围内添加单位总和。我已经设法添加了一个单位总和(请参阅下面的查询),但这只是 return 整个范围的总和。
我想要实现的是 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"
}
}
}
}
}
}
}
}
有人可以帮忙吗?提前致谢。
你就快完成了,你只需要在 range
聚合中移动(或复制)你的 unit_sum
,就像这样:
{
"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"
}
}
}
}
}
}
}
}
}
}