进阶-第42__深入聚合数据分析_bucket filter:统计牌品最近一个月的平均价格

aggs.filter,针对的是聚合去做的(aggs 里面放filter)

 

如果放query里面的filter,是全局的,会对所有的数据都有影响

 

但是,如果,比如说,你要统计,长虹电视,最近1个月的平均值; 最近3个月的平均值; 最近6个月的平均值

 

bucket filter:对不同的bucket下的aggs,进行filter

搜索查询

GET /tvs/sales/_search

{

 "size": 0,

 "query": {

   "term": {

     "brand": {

       "value": "长虹"

     }

   }

 },

 "aggs": {

   "recent_2000d": {

     "filter":{

       "range": {

         "sold_date": {

           "gte": "now-2000d"

         }

       }

     },

     "aggs": {

       "recent_2000d_avg_price": {

         "avg": {

           "field": "price"

         }

       }

     }

   },

   "recent_1500d": {

     "filter":{

       "range": {

         "sold_date": {

           "gte": "now-1500d"

         }

       }

     },

     "aggs": {

       "recent_1500d_avg_price": {

         "avg": {

           "field": "price"

         }

       }

     }

   },

   "recent_850d": {

     "filter":{

       "range": {

         "sold_date": {

           "gte": "now-850d"

         }

       }

     },

     "aggs": {

       "recent_850d_avg_price": {

         "avg": {

           "field": "price"

         }

       }

     }

   }

 }

}

 

搜索结果

{

  "took": 1,

  "timed_out": false,

  "_shards": {

    "total": 5,

    "successful": 5,

    "failed": 0

  },

  "hits": {

    "total": 3,

    "max_score": 0,

    "hits": []

  },

  "aggregations": {

    "recent_1500d": {

      "doc_count": 3,

      "recent_1500d_avg_price": {

        "value": 1666.6666666666667

      }

    },

    "recent_2000d": {

      "doc_count": 3,

      "recent_2000d_avg_price": {

        "value": 1666.6666666666667

      }

    },

    "recent_850d": {

      "doc_count": 0,

      "recent_850d_avg_price": {

        "value": null

      }

    }

  }

}

 

猜你喜欢

转载自blog.csdn.net/qq_35524586/article/details/88567003