【问题标题】:Number of specific elements in a nested list嵌套列表中特定元素的数量
【发布时间】:2019-04-02 09:34:09
【问题描述】:

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" 是一个嵌套列表。我使用 inline sctipting 来计算列表的大小,如下所示:

"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

【问题讨论】:

    标签: elasticsearch scripting nested elasticsearch-painless


    【解决方案1】:

    我在 Painless 中找到了一种解决方案:

    def count = 0;
    for (item in params._source.orders){
    if (item.statusCode != 5 && item.statusCode != 6) {
    count++; }}
    return count < 4;
    

    【讨论】:

      猜你喜欢
      • 2015-04-20
      • 1970-01-01
      • 1970-01-01
      • 2021-09-19
      • 1970-01-01
      • 2019-03-25
      • 2018-05-18
      • 1970-01-01
      • 2021-11-01
      相关资源
      最近更新 更多