解决elasticsearch里拒绝更新mapping设置的错误

在Elasticsearch 6.3版本中遇到更新mapping设置时的错误,提示'Rejecting mapping update...'。该错误由于Elasticsearch 6开始不允许索引中存在多个mapping类型。解决方案是在创建索引时,明确设置mapping的上层key为'doc',以符合新版本的规定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@[TOC] 解决elasticsearch里拒绝更新mapping设置的错误

错误现象

对一个es上已经创建的索引,使用python的elasticsearch_dsl 库,
Rejecting mapping update to [] as the final mapping would have more than 1 type: [ _doc,]

环境版本 elasticsearch 6.3
从原因分析,应该6以后的较高版本都会出现

原因浅层分析

elasticsearch 6对mapping的一个基础设定做了重大改变(Breaking Change),用官方文档原文来描述是这样的

Indices created in Elasticsearch 6.0.0 or later may only contain a single mapping type. Indices created in 5.x with multiple mapping types will continue to function as before in Elasticsearch 6.x. Types will be deprecated in APIs in Elasticsearch 7.0.0, and completely removed in 8.0.0.

不完全也不精确地理解,一个索引(Index)内部曾经允许动态创建多个mapping type,新版本里不允许了。
同时修改的还有对_doc这个默认值的处理。
如果在创建mapping时没设对参数值,就会一直报错。

简单绕开问题的办法

PUT http://localhost:9200/index_name/

用api创建名为index_nam

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值