I have been trying to use date histogram aggregation in elasticsearch and it returns the date as epoch or in yy-mm-dd-mm-ss format. But what I want is to get document count
You need to go for a different approach. Using scripts , you can convert date time into week day. On this value if you apply terms aggregation , it should work fine.
Script to convert date time value into weekday
Date date = new Date(doc['created_at'].value) ;
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat('EEE');
format.format(date)
Query to get the values
{
"aggs": {
"perWeekDay": {
"terms": {
"script": "Date date = new Date(doc['created_at'].value) ; java.text.SimpleDateFormat format = new java.text.SimpleDateFormat('EEE');format.format(date)"
}
}
}
}
You can also find some more examples on using scripting in aggregations here.