【发布时间】:2019-08-08 21:19:50
【问题描述】:
我有一个 ElasticSearch 索引,其文档结构如下:
"created": "2019-07-31T22:44:41.437Z",
"id": "2956",
"rating": 1
如果我希望创建一个按平均评分排序的 id 字段的聚合,可以通过以下方式处理:
{
"aggs" : {
"sorted" : {
"terms" : {
"field" : "id",
"order" : { "sort" : "asc" }
},
"aggs" : {
"sort" : {
"avg" : {
"field" : "rating"
}
}
}
}
}
}
但是,我只考虑上周内具有 created 值的文档(然后取这些 rating 字段的平均值)。
我对此的幼稚想法是在 sort 聚合中应用过滤器或范围,但聚合不能有多种类型,并且查看 avg documentation,我看不到将其放入的方法平均乐观地尝试将范围字段放在 avg 中,不管文档说什么都没有产生任何结果(如预期的那样)。
我将如何实现这一目标?
【问题讨论】:
标签: elasticsearch