Painless script field Kibana

Добрый день!
Хочу убедиться в том, что Kibana не может отобразить следующий терм (total_goals) из примера:

GET hockey/_search
{
  "query": {
    "match_all": {}
  },
  "script_fields": {
    "total_goals": {
      "script": {
        "lang": "painless",
        "source": """
          int total = 0;
          for (int i = 0; i < doc['goals'].length; ++i) {
            total += doc['goals'][i];
          }
          return total;
        """
      }
    }
  }
}

Задача визуализировать переменную из скрипта.
UPD: В общем просмотрев форумы я пришел к выводу, что данную задачу невозможно реализовать средствами Kibana.

Почему не возможно? Я только что попробовал - все работает. Какой у вас тип у поля goals и что конкретно не работает?

Игорь, :flushed: я очень удивлен.

Тогда большая просьба пояснить, как мне отобразиться в Data Table значение total_goals без использования scripted fields в Kibana:
Делаю запрос в elasticsearch:

GET hockey/_search
{
  "query": {
    "match_all": {}
  },
  "script_fields": {
    "total_goals": {
      "script": {
        "lang": "painless",
        "inline": "int total = 0; for (int i = 0; i < doc['goals'].length; ++i) { total += doc['goals'][i]; } return total;"
      }
    }
  }
}

Получаю ответ:

{
"took" : 14,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 11,
"max_score" : 1.0,
"hits" : [
{
"_index" : "hockey",
"_type" : "player",
"_id" : "1",
"_score" : 1.0,
"fields" : {
"total_goals" : [
37
]
}
},
{
"_index" : "hockey",
"_type" : "player",
"_id" : "2",
"_score" : 1.0,
"fields" : {
"total_goals" : [
87
]
}
},..... и т.д.

Почему такие вопросы я объясню. Есть индекс, где проиндексированы fields с датой начала и конца операции. Мне нужно показать длительность операции, длительность операции планирую вычислять скриптом, создавая новое поле в запросе.

А в чем проблема с использованием scripted_fields в Kibana?

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.