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

如何在Elasticsearch的fields中提取嵌套对象属性?

Elasticsearch 提取嵌套字段并重命名的解决方案

已知已索引的文档结构:

{
  "name": "Alice",
  "address": {
    "street": "123 Station",
    "city": "Seattle"
  }
}

需求是同时提取name字段和address.city字段,且后者在返回结果中以address.city作为键名。之前尝试直接写"address.city"或"address['city']"都无法得到输出,同时受限于只读权限无法创建计算字段,使用的Elasticsearch版本也不支持runtime_mappings且无法升级。

可以通过fields数组的对象形式实现需求,具体查询语句如下:

"fields": [
  "name",
  {
    "field": "address.city",
    "name": "address.city"
  }
]

对应的返回结果:

"fields": {
  "name": [
    "Alice"
  ],
  "address.city": [
    "Seattle"
  ]
}

这种写法在不支持runtime_mappings的旧版Elasticsearch中完全适用:用对象的field参数指定实际的嵌套字段路径,name参数设定返回结果里的键名,同时name字段可以继续保留原来的简洁写法,无需额外配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 17:17:04