zoukankan      html  css  js  c++  java
  • 42.global bucket的使用:单个品牌与所有品牌销量对比

    主要知识点:

    • _global bucket的使用

         

    本例以搜索单个品牌和所有品牌的销量对比进行学习_global es在进行aggregation操作时都只只是在一个scope中进行聚合等操作,对于一个搜索+聚合的操作,那么这个聚合操作就必须在搜索操作所探索的结果范围内。因此就需要用到_global语法来对全部数据进行聚合。

    本例要求得出两个结果,一个结果是基于query搜索结果来聚合的; 另一个结果,是对所有数据执行聚合。

       

    语法

    GET /tvs/sales/_search

    {

    "size": 0,

    "query": {"term": {"brand": {"value": "长虹"}}},

    "aggs": {

    "single_brand_avg_price": {"terms": {"field": "color"}},

    "all":{

    "global": {},

    "aggs": {"all_brand_avg_price": {"avg": {"field": "price"}}}

    }

    }

    }

    注意语法层级。执行结果如下:

    "aggregations": {

    "all": {

    "doc_count": 8,

    "all_brand_avg_price": {

    "value": 2650

    }

    },

    "single_brand_avg_price": {

    "doc_count_error_upper_bound": 0,

    "sum_other_doc_count": 0,

    "buckets": [

    {

    "key": "红色",

    "doc_count": 3

    }

    ]

    }

    }

    }

    global:就是global bucket,就是将所有数据纳入聚合的scope,而不管之前的query结果。

    single_brand_avg_price:就是针对query搜索结果,执行的,拿到的,就是长虹品牌的平均价格

    all.all_brand_avg_price:拿到所有品牌的平均价格

  • 相关阅读:
    eclipse快捷键
    Struts2框架(8)---Struts2的输入校验
    Struts2框架(5)---result结果集
    Spring框架(6)---AspectJ实现AOP
    Spring框架(4)---AOP讲解铺垫
    Spring框架(3)---IOC装配Bean(注解方式)
    Spring框架(2)---IOC装配Bean(xml配置方式)
    Spring框架(1)---Spring入门
    Mybatis框架(5)---动态sql
    Mybatis框架(4)---输入输出映射
  • 原文地址:https://www.cnblogs.com/liuqianli/p/8535845.html
Copyright © 2011-2022 走看看