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

Elasticsearch7.13 使用enrich跨索引填充字段出现嵌套异常问题排查

问题根因

你的配置错误出在ingest pipeline的enrich处理器参数部分:你将target_field指定为了MagnitudeType,和earthquakes索引中原有的MagnitudeType字段重名。
enrich处理器默认会把匹配到的关联索引字段(包括匹配用的MagnitudeType、你指定要提取的MagnitudeTypeDesc)全部封装为对象,写入target_field指定的字段中,因此直接覆盖了原有的字符串类型MagnitudeType字段,形成了你看到的嵌套结构。

修复方案(推荐)

修改ingest pipeline配置,先把enrich匹配结果写入临时字段,提取出MagnitudeTypeDesc后再删除冗余的临时字段即可:

PUT /_ingest/pipeline/second_index_lookup
{
  "processors" : [
    {
      "enrich" : {
        "description": "从magnitude_type索引匹配描述字段",
        "policy_name": "second-index-policy",
        "field" : "MagnitudeType",
        "target_field": "tmp_magnitude_meta"
      }
    },
    {
      "set": {
        "field": "MagnitudeTypeDesc",
        "value": "{{tmp_magnitude_meta.MagnitudeTypeDesc}}"
      }
    },
    {
      "remove": {
        "field": "tmp_magnitude_meta",
        "ignore_failure": true
      }
    }
  ]
}

修改后重新执行reindex即可,注意你原本需求是生成名为my_index的索引,需要把reindex请求中dest.index的值从new_index改为my_index:

POST _reindex
{
  "source": {
    "index": "earthquakes"
  },
  "dest": {
    "index": "my_index",
    "pipeline": "second_index_lookup"
  }
}

最终生成的文档结构符合要求:

"_source" : {
  "MagnitudeType" : "MW",
  "MagnitudeTypeDesc" : "cok fena zelzele",
  "name" : "can"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:39:04