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] + ")"
我想以文本格式(如星期一、星期二等)获取聚合结果作为星期几。我有以下聚合,其中我以星期几形式获取结果,但以数字格式(如 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] + ")"