我一直在尝试在Elasticsearch中使用日期直方图聚合,并且它以纪元或yy-mm-dd-mm- ss格式返回日期。但是我想要的是获取每周的文档计数,例如星期一,星期二等。我有什么方法可以做到这一点?
您需要采用其他方法。使用脚本,您可以将日期时间转换为星期几。在此值上,如果您应用术语汇总,它应该可以正常工作。
将日期时间值转换为工作日的脚本
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)" } } } }
您还可以在此处找到有关在聚合中使用脚本的更多示例。