Как получить ключ и значение из эластичного результата Json? - PullRequest
0 голосов
/ 15 марта 2019

action часть упругого наблюдателя выглядит следующим образом -

"actions": {
    "index_payload": {
      "transform": {
        "script": "ctx.payload.aggregations.time_interval.buckets.0"
      },
      "index": {
        "index": "hourly-data",
        "doc_type": "meters_hourly_data"
      }
    }
  }

и вывод -

"payload" : {
              "key_as_string" : "2019-03-11T00:00:00.000-05:00",
              "doc_count" : 1440,
              "http_server" : {
                "doc_count_error_upper_bound" : 0,
                "sum_other_doc_count" : 0,
                "buckets" : [
                  {
                    "1" : {
                      "value" : 0.16463961166666666
                    },
                    "doc_count" : 960,
                    "2" : {
                      "value" : 0.0
                    },
                    "3" : {
                      "value" : 3.2266329166666665
                    },
                    "4" : {
                      "doc_count_error_upper_bound" : 0,
                      "sum_other_doc_count" : 0,

Я хочу получить ключ непосредственных объектов и значение key_as_string. До сих пор с ctx.payload.aggregations.time_interval.buckets.0 я могу достичь до payload. Когда я пытался изменить скрипт на ctx.payload.aggregations.time_interval.buckets.0.key_as_string или ctx.payload.aggregations.time_interval.buckets.0.key_as_string.value, я получаю сообщение об ошибке.

При использовании следующего скрипта -

"script": "['ctx.payload.aggregations.time_interval.buckets.0'].value"

Я получаю следующую ошибку -

> "script":
> "(int)(['ctx.payload.aggregations.time_interval.buckets.0'].value)",
>     "lang": "painless",
>     "caused_by": {
>       "type": "class_cast_exception",
>       "reason": "Cannot cast from [java.lang.String] to [int]."
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...