ES学习8-聚合1

Posted 匡子语

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES学习8-聚合1相关的知识,希望对你有一定的参考价值。

参考资料:

https://elasticsearch.cn/book/elasticsearch_definitive_guide_2.x/_combining_the_two.html

 

特定概念:

桶(Buckets)满足特定条件的文档的集合

指标(Metrics)对桶内的文档进行统计计算

SELECT COUNT(color) 
FROM table
GROUP BY color 

COUNT(color) 相当于指标。

GROUP BY color 相当于桶。

 

聚合例子:

curl -XGET localhost:9200/text/_search?pretty -d {"size":0,
 "aggs":
    {"popular_ports":
        {"terms":
            {"field":"port"}
        }
    }
}

对port字段做聚合,结果名称为popular_ports。size设为0表示不关心搜索结果,结果的hits部分会是空值。

 

计算每种颜色车辆价格的平均值

GET /cars/transactions/_search
{
   "size" : 0,
   "aggs": {
      "colors": {
         "terms": {
            "field": "color"
         },
         "aggs": { 
            "avg_price": { 
               "avg": {
                  "field": "price" 
               }
            }
         }
      }
   }
}

 

嵌套桶

每个颜色的汽车制造商的分布

GET /cars/transactions/_search
{
   "size" : 0,
   "aggs": {
      "colors": {
         "terms": {
            "field": "color"
         },
         "aggs": {
            "avg_price": { 
               "avg": {
                  "field": "price"
               }
            },
            "make": { 
                "terms": {
                    "field": "make" 
                }
            }
         }
      }
   }
}

 

每个颜色的汽车制造商的分布,以及各个制造商生产汽车的最高和最低价格。

GET /cars/transactions/_search
{
   "size" : 0,
   "aggs": {
      "colors": {
         "terms": {
            "field": "color"
         },
         "aggs": {
            "avg_price": { "avg": { "field": "price" }
            },
            "make" : {
                "terms" : {
                    "field" : "make"
                },
                "aggs" : { 
                    "min_price" : { "min": { "field": "price"} }, 
                    "max_price" : { "max": { "field": "price"} } 
                }
            }
         }
      }
   }
}

 

以上是关于ES学习8-聚合1的主要内容,如果未能解决你的问题,请参考以下文章

ES学习--嵌套聚合下钻分析聚合分析

Es学习第九课, 聚合查询和复合查询

ES学习10-聚合3

ES学习9-聚合2

[ElasticSearch] Aggregation :简单聚合查询

es lucene搜索及聚合流程源码分析