簡體   English   中英

elasticsearch計算唯一值的平均值

[英]elasticsearch calculate average of unique values

如何動態計算elasticsearch中唯一值的平均值?

{ "price" : 10000, "color" : "red" }
{ "price" : 20000, "color" : "red" }
{ "price" : 30000, "color" : "green" }
{ "price" : 15000, "color" : "blue" }
{ "price" : 12000, "color" : "green" }
{ "price" : 20000, "color" : "red" }
{ "price" : 80000, "color" : "red" }
{ "price" : 25000, "color" : "blue" }

在上面的數據中,我如何獲得“顏色”字段的唯一值,然后獲得每個獨特“顏色”字段的平均值?

使用terms聚合terms出唯一的顏色值,然后使用avg子聚合來實現這一目的:

{
  "aggs": {
    "colors": {
      "terms": {
        "field": "color"
      },
      "aggs": {
        "average": {
          "avg": {
            "field": "price"
          }
        }
      }
    }
  }
}

使用Aggregration,您可以得到答案:

  curl -XGET 'localhost:9200/demo/post/_search?pretty=true' -d 
     '{
    "aggs": {
      "aggs_color": {
          "terms": {
           "field": "color"
            },
     "aggs": {
       "aggs_avg": {
           "avg": {
           "field": "price"
                   }
                 }
               }
              }
             }
           }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM