elasticsearch - 以星期一,星期二等文本格式获取星期几

时间:2017-08-24 11:18:17

标签: elasticsearch kibana

我希望以星期一,星期二等文本格式获得聚合结果作为星期几。我有以下聚合,其中我得到的结果是星期几,但数字格式如1表示星期一,2表示星期二等。

"aggs": {
   "perWeekDay": {
       "terms": {
           "script": "doc['order_datetime'].date.dayOfWeek"
       }
    }
}

更新:我正在使用脚本执行此操作,因为我想在kibana中添加自定义字段,我需要提及此脚本。

2 个答案:

答案 0 :(得分:1)

通过使用条件执行一些脚本工作解决了这个问题。

"aggs": {
   "perWeekDay": {
       "terms": {
           "script": "(doc['order_datetime'].date.dayOfWeek == 1 ? 'Monday' : (doc['order_datetime'].date.dayOfWeek == 2 ? 'Tuesday' : ((doc['order_datetime'].date.dayOfWeek == 3 ? 'Wednesday' : ((doc['order_datetime'].date.dayOfWeek == 4 ? 'Thursday' : ((doc['order_datetime'].date.dayOfWeek == 5 ? 'Friday' : ((doc['order_datetime'].date.dayOfWeek == 6 ? 'Saturday' : 'Sunday'))))))))))"
       }
    }
}

答案 1 :(得分:0)

或者您可以这样做

doc['timestamp'].date.dayOfWeek + " (" + ["", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"][doc['timestamp'].date.dayOfWeek] + ")"