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

Elasticsearch重索引时移除platform.platforms数组元素报空指针异常

Elasticsearch Reindex 空指针异常修复方案

问题根因

空指针异常由字段缺失导致:原索引devops-ucd-000001中存在部分文档没有platform顶层字段,或是platform对象下不存在platforms数组字段,脚本直接调用removeAll方法时访问了空对象触发报错。

修正后执行语句

POST /_reindex
{
  "source": {
    "index": "devops-ucd-000001"
  },
  "dest": {
    "index": "temp-ucd"
  },
  "conflicts": "proceed",
  "script": {
    "lang": "painless",
    "inline": """
    if (ctx._source.platform != null && ctx._source.platform.platforms != null && ctx._source.platform.platforms instanceof List) {
        ctx._source.platform.platforms.removeAll(Collections.singleton('1'));
    }
    """
  }
}

注意事项

  • 若platforms数组中存储的1为数字类型而非字符串类型,将代码中的'1'修改为1即可
  • 脚本新增的三层校验依次验证platform字段存在、platform.platforms字段存在、platform.platforms为数组类型,全部通过后才执行元素删除逻辑,自动跳过结构不匹配的文档避免异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:36:02