Elasticsearch总和聚合

时间:2015-10-05 20:11:56

标签: elasticsearch-aggregation

有包含类别(编号)和片段(长)字段的文档。我需要某种聚合方法,按类别对这些文档进行分组并将其中的所有部分加起来

这里文档的外观如下:

{
"category":"1",
"piece":"10.000"
},
{
"category":"2",
"piece":"15.000"
} ,
{
"category":"2",
"piece":"10.000"
},
{
"category":"3",
"piece":"5.000"
} 
...

查询结果必须如下:

{
"category":"1",
"total_amount":"10.000"
} 
{
"category":"2",
"total_amount":"25.000"
} 
{
"category":"3",
"total_amount":"5.000"
} 
..

任何建议?

1 个答案:

答案 0 :(得分:1)

您想对类别进行术语聚合,从上面的记录中我看到您将它们作为字符串发送,因此它们将是分类变量。然后,作为度量,传递总和。

它的外观如下:

        "aggs" : {
            "categories" : {
                "terms" : {
                    "field" : "category"
                },
                "aggs" : {
                    "sum_category" : {
                        "sum": { "field": "piece" } 
                    }
                }
            }
        }