Я пытаюсь выполнить агрегацию sum
и avg
для моего запроса Elasticsearch, все отлично работает, но я столкнулся с проблемой - я хочу выполнить вышеупомянутые агги для моих полей nested
, которыена text
/ keyword
типов.
Причина, по которой они таковы, заключается в том, что мы будем использовать анализатор keywords
при выполнении API search
, если требуются эти конкретные вложенные поля и подполя.
Вот мое отображение:
"eng" : {
"type" : "nested",
"properties" : {
"date_updated" : {
"type" : "long"
},
"soc_angry_count" : {
"type" : "float"
},
"soc_comment_count" : {
"type" : "float"
},
"soc_dislike_count" : {
"type" : "float"
},
"soc_eng_score" : {
"type" : "float"
},
"soc_er_score" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"soc_haha_count" : {
"type" : "float"
},
"soc_kf_score" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"soc_like_count" : {
"type" : "float"
},
"soc_love_count" : {
"type" : "float"
},
"soc_mm_score" : {
"type" : "float"
},
"soc_sad_count" : {
"type" : "float"
},
"soc_save_count" : {
"type" : "float"
},
"soc_share_count" : {
"type" : "float"
},
"soc_te_score" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"soc_view_count" : {
"type" : "float"
},
"soc_wow_count" : {
"type" : "float"
}
}
}
Пожалуйста, обратите внимание на подполя soc_er_score
, soc_kf_score
и soc_te_score
вложенного поля eng
...
Когда я 'м, выполняя следующие агги, все работает нормально:
'aggs' => [
'ENGAGEMENT' => [
'nested' => [
'path' => "eng"
],
'aggs' => [
'ARTICLES' => [
//Use Histogram because the pub_date is of
//long data type
//Use interval 86400 to represent 1 day
'histogram' => [
'field' => "eng.date_updated",
"interval" => "86400",
],
'aggs'= [
'SUM' => [
'sum' => [
"field" => "eng.soc_like_score"
]
]
]
]
]
]
]
Вот вывод после выполнения search
API

НО если запрос выглядит так:
'aggs' => [
'ENGAGEMENT' => [
'nested' => [
'path' => "eng"
],
'aggs' => [
'ARTICLES' => [
//Use Histogram because the pub_date is of
//long data type
//Use interval 86400 to represent 1 day
'histogram' => [
'field' => "eng.date_updated",
"interval" => "86400",
],
'aggs'= [
'SUM' => [
'sum' => [
"field" => "eng.soc_te_score"
]
]
]
]
]
]
]
Вывод выглядит так:

РЕШЕНИЯ ВЫПОЛНЕНЫ
РЕШЕНИЕ 1 (для подтверждения)
Прочитав некоторые подробные обсуждения на форуме, я узнал, что синтаксический анализ на основе Java доступен, но, похоже,не работает на моем конце
Вот мой пересмотренный запрос:
'aggs'= [
'SUM' => [
'sum' => [
"field" => "Float.parseFloat(eng.soc_te_score).value"
]
]
]
Но, к сожалению, он отвечает null или 0 values

Кстати, я использую Laravel в качестве веб-фреймворка, поэтому мое окно отладчика или сообщение об ошибке выглядит так
Просьба о помощи, пожалуйста, заранее спасибо!