python elasticsearch 日期聚合

  1. 索引以及数据如下
PUT dateagg
{
   
  "mappings": {
   
    "properties": {
   
      "charge":{
   
        "type": "double"
      },
      "types":{
   
        "type": "keyword"
      },
      "create_date":{
   
        "type": "date",
        "format": "yyyy-MM-dd||strict_date_optional_time ||epoch_millis||E MMM dd H:m:s z y"
      }
    }
  }
}

POST dateagg/_doc/1
{
   
  "charge":"900",
  "types":"水果",
  "create_date":"2020-09-01"
}


POST dateagg/_doc/2
{
   
  "charge":"800",
  "types":"水果",
  "create_date":"2020-09-30"
}


POST dateagg/_doc/3
{
   
  "charge":"1900",
  "types":"熟食",
  "create_date":"2021-10-01"
}



POST dateagg/_doc/4
{
   
  "charge":"100",
  "types":"熟食",
  "create_date":"2023-12-31"
}
  1. 需求如下
    计算每个月每种类型的销售总额
  2. dsl
GET dateagg/_search
{
   
  "query": {
   
    "match_all": {
   }
  },"aggs": {
   
    "types": {
   
      "terms": {
   
        "field": "types"
      },"aggs": {
   
        "date": {
   
          "date_histogram": {
   
            "field": "create_date",
            "interval": "month",
            "format": "yyyy-MM",
            "min_doc_count":1
          },"aggs": {
   
            "sum": {
   
              "sum": {
   
                "field": "charge"
              }
            }
          }
        }
      }
    }
  }
}
  1. python demo
from elasticsearch_dsl import connections,Search,Q as esQ
conn = connections.create_connection(hosts=['192.168.214.134'],port=9200,http_auth="elastic:ellischen")

index = 'dateagg'

search = Search(using=conn,index=index)
query = esQ('match_all',**{
   })

search.query = query
search.extra(size=0)

search.aggs.bucket('types','terms',field="types").bucket('date',"date_histogram",field="create_date",format="yyyy-MM",interval="month",min_doc_count=1).metric("sum","sum",field="charge")
response = search.execute().aggregations.to_dict()
print(response)

相关推荐

  1. python elasticsearch 日期聚合

    2023-12-12 14:14:02       26 阅读
  2. 数据按日期周期的分组聚合

    2023-12-12 14:14:02       20 阅读
  3. Elasticsearch桶聚合和管道聚合

    2023-12-12 14:14:02       33 阅读
  4. 【Django】聚合查询——连接和聚合

    2023-12-12 14:14:02       24 阅读
  5. MongoDB聚合管道:$match

    2023-12-12 14:14:02       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-12 14:14:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-12 14:14:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-12 14:14:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-12 14:14:02       18 阅读

热门阅读

  1. 利用flask将yolov5算法封装成在线推理服务

    2023-12-12 14:14:02       43 阅读
  2. Windows server flask

    2023-12-12 14:14:02       37 阅读
  3. 2024年软考高项还是机考吗?附常见问题答疑

    2023-12-12 14:14:02       33 阅读
  4. 816 - Abbott‘s Revenge (UVA)

    2023-12-12 14:14:02       42 阅读
  5. Docker入门概念

    2023-12-12 14:14:02       41 阅读
  6. 简单的小题集(八)

    2023-12-12 14:14:02       35 阅读