ES 中的总数
count total in ES
如果我在 ES 和 dynamoDB 中有以下数据。如何使用查询计算总数 books_borrowed?
用户
user_id: 1,
名称:“ABC”,
books_borrwoed: 5,
unit_price: 10
user_id: 2,
名称:“死”,
books_borrwoed: 5,
unit_price: 10
我不能使用循环,因为一个月可以有超过 10k 条记录。
您可以使用sum aggregation,得到books_borrwed
字段的总和
{
"size": 0,
"aggs": {
"total_books": {
"sum": {
"field": "books_borrwoed"
}
}
}
}
搜索结果将是:
"aggregations": {
"total_books": {
"value": 10.0
}
}
更新 1:
如果您需要将每本书的价格乘以 5,您可以使用带有求和聚合的脚本
{
"size": 0,
"aggs": {
"total_books": {
"sum": {
"script": {
"lang": "painless",
"inline": "doc['books_borrwoed'].value * 5"
}
}
}
}
}
搜索结果将是
"aggregations": {
"total_books": {
"value": 50.0
}
}
如果您想从数据中获取值,可以使用以下查询
{
"size": 0,
"aggs": {
"total_books": {
"sum": {
"script": {
"lang": "painless",
"inline": "doc['books_borrwoed'].value * doc['unit_price'].value"
}
}
}
}
}
如果我在 ES 和 dynamoDB 中有以下数据。如何使用查询计算总数 books_borrowed?
用户
user_id: 1, 名称:“ABC”, books_borrwoed: 5, unit_price: 10
user_id: 2, 名称:“死”, books_borrwoed: 5, unit_price: 10
我不能使用循环,因为一个月可以有超过 10k 条记录。
您可以使用sum aggregation,得到books_borrwed
字段的总和
{
"size": 0,
"aggs": {
"total_books": {
"sum": {
"field": "books_borrwoed"
}
}
}
}
搜索结果将是:
"aggregations": {
"total_books": {
"value": 10.0
}
}
更新 1:
如果您需要将每本书的价格乘以 5,您可以使用带有求和聚合的脚本
{
"size": 0,
"aggs": {
"total_books": {
"sum": {
"script": {
"lang": "painless",
"inline": "doc['books_borrwoed'].value * 5"
}
}
}
}
}
搜索结果将是
"aggregations": {
"total_books": {
"value": 50.0
}
}
如果您想从数据中获取值,可以使用以下查询
{
"size": 0,
"aggs": {
"total_books": {
"sum": {
"script": {
"lang": "painless",
"inline": "doc['books_borrwoed'].value * doc['unit_price'].value"
}
}
}
}
}