Я хочу использовать агрегирование диапазона в вычисляемом поле. На данный момент у меня есть запрос:
...
"aggs": {
"ratings": {
"terms": {
"field": "card.question_id",
"size": 10000
},
"aggs": {
"ratings": {
"range": {
"field": "card.rating",
"ranges": [
{
"from": 0.0,
"to": 0.5
},
{
"from": 0.5,
"to": 1.1
}
]
}
}
}
}
}
...
Несколько карт могут иметь одинаковый вопрос_ид. Теперь у меня есть диапазоны, которые содержат количество оценок на диапазон. Но я хочу иметь диапазоны, содержащие количество вопросов , чье среднее по карте применяется к диапазонам. Примерно так:
...
"aggs": {
"ratings": {
"terms": {
"field": "card.question_id",
"size": 10000
},
"aggs": {
"ratings": {
"range": {
"avg" : { "field" : "card.rating" },
"ranges": [
{
"from": 0.0,
"to": 0.5
},
{
"from": 0.5,
"to": 1.1
}
]
}
}
}
}
}
...
Конечно, это не работает, но чтобы показать вам, что я имею в виду. Можно использовать «скрипт» вместо «поля», но я не могу вычислить среднее значение в скрипте (по крайней мере, я не знаю, как).
Кто-нибудь знает способ решить эту проблему?