试试搜索一下吧

ES的按周统计是由周一开始的? 能否指定为周日为周的第一天?

Elasticsearch | 作者 hqc19921210 | 发布于2019年12月16日 | 阅读数:2397

数据和脚本如下
POST test_avg/_bulk
{"index":{"_id":"1"}}
{ "age":20, "birth":"2004-12-31", "text":"aaa"}
{"index":{"_id":"2"}}
{ "age":30, "birth":"2005-01-01", "text":"aaa"}
{"index":{"_id":"3"}}
{ "age":40, "birth":"2005-01-02", "text":"aaa"}
{"index":{"_id":"4"}}
{ "age":50, "birth":"2005-01-03", "text":"aaa"}‘
 
我的想法是2005-01-01 是周六, 属于2014年的最后一周 , 如mysql的执行效果一样
select date_format('2015-01-01' ,'%X-%V') from dual;  -- 2014-52
 
而我的dsl是 (目的是按年周求平均值)
GET test_avg/_search
{
  "size": 0,
  "aggs": {
    "date_groupby": {
         "date_histogram": {
            "field": "birth",
            "calendar_interval": "week",
            "time_zone":"+08:00"
         },
      "aggs":{
        "avg_age":{
          "avg":{
            "field":"age"
          }
        }
      }
    }
  }
}
 
但展示出的效果是
 {
          "key_as_string" : "2004-12-27T00:00:00.000+08:00",
          "key" : 1104076800000,
          "doc_count" : 3,
          "avg_age" : {
            "value" : 30.0
          }
        },
        {
          "key_as_string" : "2005-01-03T00:00:00.000+08:00",
          "key" : 1104681600000,
          "doc_count" : 1,
          "avg_age" : {
            "value" : 50.0
          }
        }
 
请问如何设置才能达到和mysql一样的周划分(2004-12-31和2005-01-01 属于同一周 , 2005-01-02和2005-01-03属于同一周)?
感谢
已邀请:

tacsklet - 公司有用到es

赞同来自: hqc19921210

要回复问题请先登录注册