相关疑难解决方法(0)

ElasticSearch:禁用Groovy的_score字段上的聚合

我见过的每个例子(例如,ElasticSearch:_score字段上的聚合?)用于在_score字段上进行聚合或与之相关的聚合似乎需要使用脚本.出于安全原因,默认情况下ElasticSearch会禁用动态脚本,有没有办法在不借助将脚本文件加载到每个ES节点或重新启用动态脚本的情况下实现此目的?

我的原始聚合如下所示:

"aggs": {
    "terms_agg": {
        "terms": {
            "field": "field1",
            "order": {"max_score": "desc"}
        },
     "aggs": {
         "max_score": {
             "max": {"script": "_score"}
         },
         "top_terms": {
             "top_hits": {"size": 1}
         }
      }
}
Run Code Online (Sandbox Code Playgroud)

尝试将表达式指定为lang似乎不起作用,因为ES会抛出一个错误,指出只有在用于排序时才能访问该分数.我无法通过得分字段找出任何其他方法来订购我的桶.有人有主意吗?

编辑:为了澄清,我的限制是无法修改服务器端.即,作为ES安装或配置的一部分,我无法添加或编辑任何内容.

scripting groovy elasticsearch

7
推荐指数
1
解决办法
864
查看次数

标签 统计

elasticsearch ×1

groovy ×1

scripting ×1