Elasticsearch:No handler for type [string]...与Rejecting mapping update to [hn] as the final mapping ...

本文解析了在Elasticsearch 6.4.0版本中创建字段时遇到的错误,详细分析了从string类型到text和keyword类型的迁移,以及如何正确设置index属性。同时,文章还探讨了在更新mapping时遇到的多类型映射问题,并提供了相应的解决方案。

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

报错原因

我的Elasticsearch是"6.4.0"版本,当我创建字段时

{
"domain":
        {
    "type": "string",
    "index": "not_analyzed"
    }
}

 

原因分析

查看官方文档后发现是在新版本中已经移除该操作方式了

Elasticsearch从5.X就引入了textkeyword,其中keyword适用于不分词字段,搜索时只能完全匹配,这时string还保留着。 
到了6.X就彻底移除string了。 
另外,"index"的值只能是boolean变量了。

解决方法

修改为

    {
    "domain":{
                    "type":"text",
                    "index":"false"
                },
    }        

 

出现的第二个问题

1. 此时抛出了另外一个error

            {
                "type": "illegal_argument_exception",
                "reason": "Rejecting mapping update to [hn] as the final mapping would have more than 1 type: [poll, job, story]"
            }

 

2. 这个异常引发的原因同样是版本问题

  
  在Elasticsearch 6.0.0或更高版本中创建的索引可能只包含单个mapping type。在具有多种映射类型的5.x中创建的索引将继续像以前一样在Elasticsearch 6.x中运行。映射类型将在Elasticsearch 7.0.0中完全删除。

 

转载于:https://www.cnblogs.com/tcppdu/p/9598121.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值