0
Я работаю над поиском способов сделать скопления на поле после фильтрации на другой поданной. Но поисковая документация Elastic не легко понятна.Агрегация в поле и возврат суммы в elasticsearch
Допустим, мой Mapping:
[
{
a:'a1'
b:'b1'
c:120
d:12
},
{
a:'a2'
b:'b1'
c:170
d:15
}
{
a:'a3'
b:'b2'
c:128
d:18
}
{
a:'a4'
b:'b1'
c:158
d:5
}
]
Необходимое Aggregation:
Return the sum of field "c", by selecting the docs with "b" where b=b1 and d is less than 13
Это не мое требование, но ответ мне помогает в понимании документации.
В агрегации происходит на всем наборе документов, но я хотел сумму поля «с» для выбранных документов с термином «б» и «г» –
Вот что выше. Запрос выбирает только документы с полями 'b' и' d', соответствующие их соответствующим запросам, и агрегирования будут выполняться только по этим документам. Попробуйте. – Val
{ "Aggs": { "всего": { "сумма": { "поле": "с" }} } ....... также возвращение и то же значение, что и выше запроса. Я не могу определить фильтрацию здесь. –