Среднее и сгруппированные по запросу ElasticSearch - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть некоторые данные вasticsearch, где для одного и того же значения времени существуют разные значения скорости (есть поля секунд и миллисекунд).Я хочу сгруппировать по секундам и получить среднюю скорость за эту секунду.Короче говоря, ищите es запрос как:

select average(speed) as speed, sec from index group by sec order by sec asc

1 Ответ

0 голосов
/ 06 февраля 2019

Вы можете просто использовать terms агрегацию в поле seconds и затем avg метрическую субагрегацию в поле speed, например так:

{
  "size": 0,
  "query": {
  },
  "aggs": {
    "seconds": {
      "terms": {
        "field": "seconds"
      },
      "aggs": {
        "speed": {
          "avg": {
            "field": "speed"
          }
        }
      }
    }
  }
}
...