一尘不染

如何在elascticsearch中使用日期-直方图聚合显示日期名称

elasticsearch

我一直在尝试在Elasticsearch中使用日期直方图聚合,并且它以纪元或yy-mm-dd-mm-
ss格式返回日期。但是我想要的是获取每周的文档计数,例如星期一,星期二等。我有什么方法可以做到这一点?


阅读 354

收藏
2020-06-22

共1个答案

一尘不染

您需要采用其他方法。使用脚本,您可以将日期时间转换为星期几。在此值上,如果您应用术语汇总,它应该可以正常工作。

将日期时间值转换为工作日的脚本

Date date = new Date(doc['created_at'].value) ; 
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat('EEE');
format.format(date)

查询以获取值

{
  "aggs": {
    "perWeekDay": {
      "terms": {
        "script": "Date date = new Date(doc['created_at'].value) ; java.text.SimpleDateFormat format = new java.text.SimpleDateFormat('EEE');format.format(date)"
      }
    }
  }
}

您还可以在此处找到有关在聚合中使用脚本的更多示例。

2020-06-22