2017-08-24 97 views
1

我想要得到星期几的聚集结果,如星期一,星期二等文本格式。我有下面的聚合,我得到的结果作为一周的一天,但在数字格式像1日,2表示星期二等等elasticsearch - 以星期一,星期二等文本格式获取星期几

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

更新:因为我想添加自定义字段中kibana,我需要提到这个剧本我这样做使用脚本。

+0

你可以在客户端映射数字到日期名称的简单映射吧? – Val

+0

是的,但我想找出 是否有弹性搜索的方式作为doc ['timestamp']。date.dayOfWeek()。getAsText()我已经看到了这个答案(https://stackoverflow.com/a/31852124/6582942),有没有办法在新版本中获得它,因为它不工作。 – pravindot17

+0

你总是可以尝试使用'EEE'模式来格式化你的日期以得到相应的三个字母的日期。 – Val

回答

0

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

"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'))))))))))" 
     } 
    } 
} 
相关问题