elasticsearch - 适用于Elasticsearch文档中字段总和的常规groovy脚本

标签 elasticsearch groovy

这个问题是对this question的跟进。

如果我的文档如下所示:

{"documentid":1,
"documentStats":[ {"foo_1_1":1}, {"foo_2_1":5}, {"boo_1_1":3} ]
}

在script_field中用于返回每个文档中与特定模式匹配的所有documentStats之和的正确的常规脚本是什么(例如,包含_1_)

最佳答案

与上述问题类似,有一个单行代码对您的新结构执行相同的操作:

{
    "query" : {
        ...
    },
    "script_fields" : {
        "sum" : {
            "script" : "_source.documentStats.findAll{ it.keySet()[0] =~'_1_' }.collect{it.values()}.flatten().sum()"
        }
    }
}

关于elasticsearch - 适用于Elasticsearch文档中字段总和的常规groovy脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37465248/

相关文章:

javascript - 在 Grails 的 JavaScript 源代码中执行 groovy 语句

grails - 我如何将日期格式化为来自 <g :select> 中的数据库的指定格式

rest - 如何在Rest API中使用Kibana查询

elasticsearch - Elasticsearch不返回具有相同 token 的结果?

elasticsearch - 何时启动其他Elasticsearch节点?

elasticsearch - 如何在同一图形上使两个系列不同地显示

unit-testing - Gradle 任务 groovyDoc 因 NoClassDefFoundError 而失败

java - 是否可以使用 plafyramework2 for java 和 groovy 模板?

java - Groovy 猫王运算符

java - 如何在 Java 中禁用 Elasticsearch RestClient v6.7.0 的 SSL 验证