Документ Elastic имеет такую структуру:
...
"somefield": "somevalue",
"orders": [{
"version": 1,
"statusCode": 1
}, {
"version": 1,
"statusCode": 1
}, {
"version": 2,
"statusCode": 2
}, {
"version": 3,
"statusCode": 5
}, {
"version": 3,
"statusCode": 6
}
]
...
"orders" - это вложенный список.Для вычисления размера списка я использую встроенный скетчпинг:
"params._source.orders.size() < 4"
Мне нужно добавить условие для вычисления количества заказов, у которых statusCode не 5, а не 6. Linq будет выглядеть так:
...orders.Where(o=>!(new[] {5, 6}).Contains(o.statusCode)).size()...
Как написать скрипт на языке Painless или Groovy?
В результате получается исключение:
params._source.orders.count { it -> it.statusCode == 1 } < 4