我的索引包含两个元素:

{
  "pound" : 1.5
}

当ES通过SUM聚合将两个元素加在一起时,每个pound值都舍入为1而不是保留1.5。为什么?

结果应该是3,而不是2

这是我的ES请求:
POST foo/bar/_search
{
   "aggs": {
      "sumPound": {
         "sum": {
            "field": "pound"
         }
      }
   }
}

以及响应:
{
   ...,
   "hits": {
      "total": 2,
      "max_score": 1,
      "hits": [
         {
            ...,
            "_source": {
               "pound": 1.5,
            }
         },
         {
            ...,
            "_source": {
               "pound": 1.5,
            }
         }
      ]
   },
   "aggregations": {
      "sumPound": {
         "value": 2          <-- 1.5 + 1.5 == 2 ???
      }
   }
}

最佳答案

验证您的映射,pound字段的类型是否设置为double?看起来像是integer

关于elasticsearch - SUM聚合将每个值取整?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21882733/

10-09 08:27