Elasticsearch 查询未返回求和字段的总值
Elasticsearch query is not returning a total value of a summed field
我有以下 elasticsearch 查询。它作为 AWS Amplify 无服务器后端的一部分执行。
const elasticBody = {
...defaultBody,
aggs: {
points: {
date_histogram: {
field: "createdAt",
interval: "day",
},
aggs: {
points: {
sum: {
field: "points",
},
},
},
},
total: {
sum: {
field: "points",
},
},
},
};
const data = await search(index, elasticBody);
我收到以下响应,这是我试图获得的大部分内容,但是,查询下部的 'total' 值未产生结果。
我一直在仔细研究 Elasticsearch 文档,但找不到解决方案。
我期待响应中的以下结构。
count: x,
data: [{...}],
我原以为计数是返回数据集中所有点的总和值。
您需要使用 Sum Bucket Aggregation 来获取 return 存储桶响应的总和。请检查以下查询:
"aggs": {
"points": {
"date_histogram": {
"field": "createdAt",
"interval": "day"
},
"aggs": {
"points": {
"sum": {
"field": "points"
}
}
}
},
"total":{
"sum_bucket": {
"buckets_path": "points>points"
}
}
}
我有以下 elasticsearch 查询。它作为 AWS Amplify 无服务器后端的一部分执行。
const elasticBody = {
...defaultBody,
aggs: {
points: {
date_histogram: {
field: "createdAt",
interval: "day",
},
aggs: {
points: {
sum: {
field: "points",
},
},
},
},
total: {
sum: {
field: "points",
},
},
},
};
const data = await search(index, elasticBody);
我收到以下响应,这是我试图获得的大部分内容,但是,查询下部的 'total' 值未产生结果。
我一直在仔细研究 Elasticsearch 文档,但找不到解决方案。
我期待响应中的以下结构。
count: x,
data: [{...}],
我原以为计数是返回数据集中所有点的总和值。
您需要使用 Sum Bucket Aggregation 来获取 return 存储桶响应的总和。请检查以下查询:
"aggs": {
"points": {
"date_histogram": {
"field": "createdAt",
"interval": "day"
},
"aggs": {
"points": {
"sum": {
"field": "points"
}
}
}
},
"total":{
"sum_bucket": {
"buckets_path": "points>points"
}
}
}