Я индексирую данные журнала доступа Tomcat в Elasticsearch (1.7.3). Документы, с которыми я имею дело, имеют концепцию длительности, представленную как время окончания и продолжительность в миллисекундах (время начала можно рассчитать, хотя я также могу его сохранить, если это поможет решить мою проблему). Например:
{
ztime: "10-17-2015T04:05:00.000+02:00",
duration: 4500,
thred: "http-nio-8080-exec-14"
},
{
ztime: "10-17-2015T04:07:42.227+02:00",
duration: 3100,
thred: "http-nio-8080-exec-25"
}
Моя цель — создать гистограмму, на которой я каждую секунду показываю, сколько существует потоков.
Я подумал об использовании date_histogram, который будет объединять мои документы в сегменты по 1 секунде.
GET /mindex/mtype/_search?search_type=count
{
"aggs": {
"threads_per_hr": {
"date_histogram": {
"field": "ztime",
"interval": "1s",
"min_doc_count": 1
},
"aggs": {
"per_hr_threads": {
"cardinality": {
"field": "thread"
}
}
}
}
}
}
однако, таким образом, каждый поток будет сегментирован только один раз.
Мне нужно, чтобы каждый документ был разделен на несколько сегментов. Например, мне нужно, чтобы первый документ был разбит на сегменты 04:05:00.000, 04:05:01.000, 04:05:02.000, 04:05:03.000.
Какой тип запроса (Java API и/или REST API) поможет мне достичь этой цели?