You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Elasticsearch中筛选gender为female的嵌套对象并获取最大id值

Elasticsearch筛选female后获取最大id的解决方案

问题描述

需筛选gender为female的文档(或嵌套对象),从中获取最大的id字段值,预期结果为id=34且gender=female。

文档数据

假设abc是嵌套数组字段(符合“嵌套对象”描述),完整结构如下:

{
  "abc": [
    {
      "id": 28,
      "gender": "female",
      "city": "South vales",
      "state": "US",
      "gid": 56,
      "value": "Money",
      "type": "Dollars",
      "date": "2021-06-30",
      "edited_by": "xyz"
    },
    {
      "id": 29,
      "gender": "male",
      "city": "Mumbai",
      "state": "India",
      "gid": 55,
      "value": "Money",
      "type": "Dollars",
      "date": "2020-06-24",
      "edited_by": "hjk"
    },
    {
      "id": 34,
      "gender": "female",
      "city": "Austin",
      "state": "US",
      "gid": 98,
      "value": "Money",
      "type": "Dollars",
      "date": "2022-05-25",
      "edited_by": "opi"
    }
  ]
}

原查询问题

你之前的查询未添加过滤条件,也未处理嵌套对象的访问逻辑,因此无法得到预期结果:

GET abc/_search
{
  "aggs": {
    "max_id": {
      "max": {
        "field": "id"
      }
    }
  }
}

正确查询方案

情况1:gender和id为顶级字段(无嵌套结构)

如果gender和id是文档的顶级字段,只需添加term查询过滤gender: female,再执行最大值聚合:

GET abc/_search
{
  "size": 0, // 无需返回原始文档,仅查看聚合结果
  "query": {
    "term": {
      "gender.keyword": "female"
    }
  },
  "aggs": {
    "max_female_id": {
      "max": {
        "field": "id"
      }
    }
  }
}

情况2:abc为nested类型嵌套数组字段

如果abc是嵌套数组,需使用nested聚合进入嵌套上下文,先过滤嵌套对象中gender: female的元素,再聚合最大id:

GET abc/_search
{
  "size": 0,
  "aggs": {
    "nested_abc": {
      "nested": {
        "path": "abc"
      },
      "aggs": {
        "filter_female": {
          "filter": {
            "term": {
              "abc.gender.keyword": "female"
            }
          },
          "aggs": {
            "max_female_id": {
              "max": {
                "field": "abc.id"
              }
            }
          }
        }
      }
    }
  }
}

结果说明

执行上述正确查询后,聚合结果中的max_female_id值即为34,对应gender=female的最大id。

内容的提问来源于stack exchange,提问作者Swapna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 23:15:33