我有以下查询,该查询以嵌套格式提供所需的输出。
{
"size": 0,
"aggs": {
"Pre_Post": {
"filters": {
"filters": {
"PRE": {
"range": {
"mydate": {
"gte": "2017-12-31||-6M",
"lte": "2017-12-31"
}
}
},
"POST": {
"range": {
"mydate": {
"gte": "2018-08-01",
"lte": "2018-08-07"
}
}
}
}
},
"aggs": {
"dimension1": {
"terms": {
"field": "myType.keyword"
},
"aggs": {
"sales": {
"sum": {
"field": "sales"
}
}
}
}
}
}
}
}
上述输出的格式大致为
"PRE_POST": {
"PRE": {
"buckets": {
"dimension1": {
"key": "field1",
"buckets": {
"sales": 50
}
}
}
}
}
有没有办法以非嵌套格式获取此内容,例如复合查询所提供的格式,而嵌套度则更低。
所需的样本输出类似
"PRE_POST": {
"Key1": "PRE",
"dimension1": "field1",
"buckets": {
"sales": 50
}
}
我尝试了复合,但是复合不允许过滤器。 我已经尝试使用PRE_POST作为脚本字段进行复合,但是非常慢。 我还尝试了邻接矩阵,其中两个过滤器用于PRE和POST,其他过滤器用于每个Dimension1字段。但这会返回过多的不必要数据。
有没有什么方法或方法想让我以更少的嵌套格式获取输出。