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

elasticsearch - get day of the week in text format like Monday, Tuesday etc

我想以文本格式(如星期一、星期二等)获取聚合结果作为星期几。我有以下聚合,其中我以星期几形式获取结果,但以数字格式(如 1 表示星期一), 2 表示星期二等

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

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

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

"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'))))))))))"
       }
    }
}

或者你可以这样做

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