Как получить ElasticSearch Aggregation с продолжительностью - PullRequest
0 голосов
/ 05 июня 2019

Я использую ElasticSearch 7.1.0 и Kibana 7.1.0, и у меня есть данные, которые выглядят следующим образом

{
  "user":"8a195d1b-24c9-11e5-8f96-00142273155d",
   "session_id":"4d024a90-b141-4ee1-b4e3-e2022fb2f581",
   "timestamp":1559681962442,
   "recieved_timestamp":1559681964197,
   "feature_id":"foo",
   "dwell":{
      "resource_id":"foo",
      "dwell_ms":23218
   },
   "event_type":"dwell",
   "stored_timestamp":1559682046757
}

Я хочу иметь представление о данных с использованием агрегации, которая показывает начало и остановку события задержки, где я использовал агрегацию терминов для сортировки событий задержки в сегменты того, на что ссылается функция, а затем для каждого событий в этих сегментах добавить относительное смещение задержки к отметке времени, чтобы у меня было время начала и окончания события.

Будем весьма благодарны за любые рекомендации о том, как структурировать этот тип запроса дляasticsearch.

Спасибо!

1 Ответ

0 голосов
/ 06 июня 2019

Попробуй это. Он будет агрегировать все события по полю event_type и снова использовать субагрегацию top_hits, чтобы получить поле timestamp из соответствующего сегмента агрегации терминов.

{
    "size": 0,
    "aggs": {
        "event_type": {
            "terms": {
                "field": "event_type",
                "size": 5
            },
            "aggs": {
                "top_event_hits": {
                    "top_hits": {
                        "_source": {
                            "includes": [
                                "timestamp"
                            ]
                        },
                        "size": 1
                    }
                }
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...