gpt4 book ai didi

ElasticSearch:_score 字段上的聚合?

转载 作者:行者123 更新时间:2023-11-29 02:47:00 24 4
gpt4 key购买 nike

我想使用 statsextended_stats _score 字段上的聚合,但找不到任何这样做的示例(即,似乎您只能对实际文档字段使用聚合)。

是否可以为 ElasticSearch 查询响应中的每个命中请求计算的“元数据”字段的聚合(例如,_score_type _shard 等)?

我假设答案是“否”,因为像 _score 这样的字段没有被索引...

最佳答案

注意:就最新版本的 Elasticsearch 而言,原始答案现已过时。使用 Groovy 脚本的等效脚本是:

{
...,
"aggregations" : {
"grades_stats" : {
"stats" : {
"script" : "_score"
}
}
}
}

为了完成这项工作,您需要启用动态脚本,或者更好的是,存储一个基于文件的脚本并按名称执行它(通过不启用动态脚本来增加安全性)!


您可以使用脚本并使用 doc.score 引用分数。 ElasticSearch 的脚本 documentation 中提供了更多详细信息.

示例统计聚合可以是:

{
...,
"aggregations" : {
"grades_stats" : {
"stats" : {
"script" : "doc.score"
}
}
}
}

结果如下:

"aggregations": {
"grades_stats": {
"count": 165,
"min": 0.46667441725730896,
"max": 3.1525731086730957,
"avg": 0.8296855776598959,
"sum": 136.89812031388283
}
}

A histogram也可能是一个有用的聚合:

"aggs": {
"grades_histogram": {
"histogram": {
"script": "doc.score * 10",
"interval": 3
}
}
}

直方图结果:

"aggregations": {
"grades_histogram": {
"buckets": [
{
"key": 3,
"doc_count": 15
},
{
"key": 6,
"doc_count": 103
},
{
"key": 9,
"doc_count": 46
},
{
"key": 30,
"doc_count": 1
}
]
}
}

关于ElasticSearch:_score 字段上的聚合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24557645/

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