gpt4 book ai didi

sorting - Elasticsearch使用嵌套聚合中的值对公式进行排序

转载 作者:行者123 更新时间:2023-12-03 00:01:27 25 4
gpt4 key购买 nike

我想对一个从嵌套聚合中获取值的公式进行排序,并使用父聚合文档计数对其进行计算。
我想按此公式结果排序:

national_averages_9_10.avg * national_averages_9_10.count / key.doc_count

where key.doc_count = root bucket document count


更具体地说,对于第一个结果文档,公式为:

9.543799991607665 * 100 / 194 = 4.919484


我有以下搜索:
GET student-grade/_search
{
"size": 0,
"aggs": {
"schools": {
"terms": {
"field": "SCHOOL_NAME.keyword",
"size": 2,
"shard_size": 250,
"min_doc_count": 20
},
"aggs": {
"national_averages_9_10": {
"filter": {
"range": {
"STUDENT_NATIONAL_AVERAGE_GRADE": {
"gte": 9,
"lte": 10
}
}
},
"aggs": {
"range_stats": {
"stats": {
"field": "STUDENT_NATIONAL_AVERAGE_GRADE"
}
}
}
}
}
}
}
}
这将产生以下示例输出:
  "aggregations": {
"schools": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 10790,
"buckets": [
{
"key": "Școala Gimnazială nr. 195",
"doc_count": 194,
"national_averages_9_10": {
"doc_count": 100,
"range_stats": {
"count": 100,
"min": 9.020000457763672,
"max": 10,
"avg": 9.543799991607665,
"sum": 954.3799991607666
}
}
},
{
"key": "Școala Gimnazială nr. 56",
"doc_count": 178,
"national_averages_9_10": {
"doc_count": 110,
"range_stats": {
"count": 110,
"min": 9,
"max": 10,
"avg": 9.566909139806574,
"sum": 1052.3600053787231
}
}
}
]
}
}

最佳答案

{
"size": 0,
"aggs": {
"schools": {
"terms": {
"field": "SCHOOL_NAME.keyword"
},
"aggs": {
"national_averages_9_10": {
"filter": {
"range": {
"STUDENT_NATIONAL_AVERAGE_GRADE": {
"gte": 9,
"lte": 10
}
}
},
"aggs": {
"range_stats": {
"stats": {
"field": "STUDENT_NATIONAL_AVERAGE_GRADE"
}
}
}
},
"my_formula": {
"bucket_script": {
"buckets_path": {
"school_total_count": "_count",
"average_9_10_total_count": "national_averages_9_10._count",
"average": "national_averages_9_10>range_stats.avg"
},
"script": "params.average * params.average_9_10_total_count / params.school_total_count"
}
}
}
}
}
}

关于sorting - Elasticsearch使用嵌套聚合中的值对公式进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48725429/

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