gpt4 book ai didi

elasticsearch - ElasticSearch:按过滤平均值对聚合排序

转载 作者:行者123 更新时间:2023-12-02 22:55:14 28 4
gpt4 key购买 nike

我有一个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的方法。乐观地尝试将范围字段放入avg中,无论文档说什么都没有产生结果(如预期)。

我将如何实现这一目标?

最佳答案

尝试使用范围查询向主体添加 bool(boolean) 查询:

{
query:
bool: {
must: {
"range": {
"created_time": {
"gte": one_week_ago,
}
}
}
}
},
{
"aggs" : {
"sorted" : {
"terms" : {
"field" : "id",
"order" : { "sort" : "asc" }
},
"aggs" : {
"sort" : {
"avg" : {
"field" : "rating"
}
}
}
}
}
}

关于elasticsearch - ElasticSearch:按过滤平均值对聚合排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57413122/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com