Elasticsearch在数字范围字段上的聚合

时间:2020-09-14 22:07:50

标签: elasticsearch

我有一个字段location.vertical.depth.value,它是一个float_range字段。我希望Elasticsearch返回所有查询结果中该字段的最小下限。

示例文档可能是:

{
    "location": {
        "vertical": {
            "depth": {
                "value": {
                    "gte": 42.0,
                    "lte": 64.0
                }
            }
        }
    }
}

这是我的尝试

"aggs": {
    "min_depth": { "min": { "field": "location.vertical.depth.value" } }
}

这引发异常:

org.elasticsearch.search.aggregations.support.ValuesSource$Range无法转换为类org.elasticsearch.search.aggregations.support.ValuesSource$Numeric

有趣的是,尽管我可以对date_range的{​​{1}}字段执行类似的操作。

1 个答案:

答案 0 :(得分:1)

minmax对范围数据类型的汇总为currently not supported。替代方法是脚本,就像建议的@Jaycreation:

{
  "size": 0,
  "aggs": {
    "min_depth": {
      "min": {
        "script": {
          "source": "params._source.location.vertical.depth.value.gte;"
        }
      }
    }
  }
}