Добрый день!
Хочу убедиться в том, что 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 и что конкретно не работает?
Игорь,
я очень удивлен.
Тогда большая просьба пояснить, как мне отобразиться в 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?