小编cor*_*foo的帖子

在script_field值上使用elasticsearch聚合?

我创建了groovy脚本来计算新的字段值.然后我可以在查询中使用该脚本来使用script_fields参数计算新字段值.这是一个例子:

{
    "query": {
        "filtered": {
            "query": {
                "bool": {
                    "must": {"match_all": {}}
                }
            }
        }
    },
    "script_fields":{
        "my_field":{
            "script_id":"my_field_calculator",
            "lang" : "groovy",
            "params": {}
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这很好用,我看到每个都有一个fields包含my_field在其中的对象的结果.完善.

现在我想使用术语聚合来获取这个新字段值的每次出现的计数,如下所示:

{
    "query": {
        "filtered": {
            "query": {
                "bool": {
                    "must": {"match_all": {}}
                }
            }
        }
    },
    "script_fields":{
        "my_field":{
            "script_id":"my_field_calculator",
            "lang" : "groovy",
            "params": {}
        }
    }
    "aggs": {
        "counts_by_my_field": {
            "terms": {
                "field": "my_field"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

查询运行得很好,我仍然在每个字段中看到我的计算结果,但是aggregations对象包含一个键,里面counts_by_my_field …

elasticsearch

5
推荐指数
1
解决办法
6758
查看次数

标签 统计

elasticsearch ×1