Я пытаюсь подсчитать совокупную разницу во времени (в минутах) между двумя полями даты документов упругого поиска в почасовой основе.
Документы в упругом поиске выглядят следующим образом:
[
{
"name": "rakesh",
"age": "26",
"email": "rakesh@gmail.com",
"createdDate": "1549458543000",
"updatedDate": "1549458723000"
},
{
"name": "sam",
"age": "24",
"email": "samjoe@elastic.com",
"createdDate": "1549458543000",
"updatedDate": "1549458723000"
},
{
"name": "joseph",
"age": "26",
"email": "joseph@gmail.com",
"createdDate": "1549458543000",
"updatedDate": "1549458723000"
},
{
"name": "genny",
"age": "24",
"email": "genny@hotmail.com",
"createdDate": "1549458543000",
"updatedDate": "1549458723000"
}
]
Используя вышеуказанные документы, нам нужно получить разницу обновленных дат и созданных дат и количество документов с одинаковым временным различием, которые созданы в тот же час.
из приведенного выше примераданные, нам нужно извлечь вывод как -
for hour 1549458000000 there are 4 documents which are updated within the 4 minutes
of time.
Я могу получить разницу во времени, используя поле скрипта
"script_fields" : {
"timeDiff" : {
"script" : "doc['updatedDate'].value -
doc['createdDate'].value"
}
}
и агрегацию подсчета, которую я пробовал:
{
"size": 0,
"aggs": {
"hour": {
"date_histogram": {
"field": "createdDate",
"interval": "hour",
"time_zone": "Asia/Calcutta",
"min_doc_count": 1
},
"aggs": {
"mail_count": {
"value_count": {
"field": "email"
}
}
}
}
},
"query": {
"bool": {
"must": []
}
}
}
С помощью вышеуказанного запроса я могу получить общее количество документов за определенный час.Есть ли в любом случае объединить эти два выхода в один.
Заранее спасибо