弹性文档的结构如下:
...
"somefield": "somevalue",
"orders": [{
"version": 1,
"statusCode": 1
}, {
"version": 1,
"statusCode": 1
}, {
"version": 2,
"statusCode": 2
}, {
"version": 3,
"statusCode": 5
}, {
"version": 3,
"statusCode": 6
}
]
..."orders"是一个嵌套列表。我使用内联sctipting计算列表的大小,如下所示:
"params._source.orders.size() < 4"我必须添加一个条件来计算statusCode不是5而不是6的订单数。
...orders.Where(o=>!(new[] {5, 6}).Contains(o.statusCode)).size()...如何用无痛或Groovy编写脚本?
这样做的结果是:
params._source.orders.count { it -> it.statusCode == 1 } < 4发布于 2019-04-02 12:49:50
我找到了无痛的解决方案之一:
def count = 0;
for (item in params._source.orders){
if (item.statusCode != 5 && item.statusCode != 6) {
count++; }}
return count < 4;https://stackoverflow.com/questions/55471419
复制相似问题