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

ElasticSearch 5.6使用_doc作为映射类型名报错的问题咨询

解决Elasticsearch 5.6.5中使用_doc作为映射类型名报错的问题

我之前在适配ES版本升级的时候也碰到过一模一样的问题,咱们来拆解下原因和解决办法:

问题根源

Elasticsearch 5.x版本默认会阻止用户创建以下划线开头的映射类型名(这类名称通常被ES内部保留使用)。虽然官方文档提到5.6版本开始支持_doc作为单类型索引的特例,方便后续适配6.x/7.x的API,但这个特性并没有默认开启,需要手动打开集群级别的配置开关才能生效。

解决步骤

你需要先通过动态集群设置开启允许下划线开头的类型名,不用重启集群,执行以下请求即可:

PUT _cluster/settings
{
  "persistent": {
    "index.mapping.allow_type_names_starting_with_underscore": true
  }
}

执行成功后,再重新运行你原来的索引创建请求:

PUT localhost:9200/users
{
  "settings": {
    "index.mapping.single_type": true
  },
  "mappings": {
    "_doc": {
      "properties": {
        "name": { "type": "text" },
        "user_name": { "type": "keyword" },
        "email": { "type": "keyword" }
      }
    }
  }
}

这次应该就能成功创建索引了。

补充说明

如果是Docker部署的集群,你也可以通过修改elasticsearch.yml配置文件添加以下内容,然后重启容器来永久生效:

index.mapping.allow_type_names_starting_with_underscore: true

不过动态设置的方式更快捷,适合不需要重启集群的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:17:17