打破字段内的值并进行聚合

时间:2016-02-22 13:08:36

标签: elasticsearch

我索引了一些文件,如下面的

{
"height" : "165"
"weight": "102-kgs"
}

现在我需要聚合权重字段,但由于它以" 102-kgs"给出,导致错误的聚合。有什么方法可以打破并只获得重量吗?

1 个答案:

答案 0 :(得分:1)

您应该使用脚本进行这些操作。 在这种情况下,以下脚本将为您提供所需的结果:

{
  "query": {
    "match_all": {}
  },
  "aggs": {
    "weights": {
      "terms": {
        "field": "weight",
        "script": "_value.split('-')[0]"
      }
    }
  }
}