首页 > 解决方案 > 在聚合中添加脚本 - 弹性搜索

问题描述

我想为我在存储桶中获得的所有命中添加一个脚本。这是查询

{
"aggregations": {

"groupByChains": {
  "terms": {
    "field": "chain.id",
    "size": 100,
    "min_doc_count": 1,
    "shard_min_doc_count": 0,
    "show_term_doc_count_error": false,
    "order": [
      {
        "_count": "desc"
      },
      {
        "_key": "asc"
      }
    ]
  },
  "aggregations": {
    "topHits": {
      "top_hits": {
        "from": 0,
        "size": 100,
        "version": false,
        "seq_no_primary_term": false,
        "explain": false
      }
    }
  }
}

} }

当我在桶内被击中时,我想添加一个带距离的字段,并且我有脚本。所以任何人都可以帮我确定在哪里添加脚本

标签: elasticsearchelasticsearch-aggregation

解决方案


您可以在 top_hits 中添加脚本字段

例子

{
  "aggs": {
    "NAME": {
      "terms": {
        "field": "quantity",
        "size": 10
      },
      "aggs": {
        "NAME": {
          "top_hits": {
            "size": 10,
            "_source": "*", 
            "script_fields": {
              "distance": {
                "script": "1 + 1"
              }
            }
          }
        }
      }
    }
  }
}

推荐阅读