按照官方指南将ES从2.3.2升级到5.6.4之后, 原有的索引index无法打开, 提示:
于是打算新建一个索引index_new, 指定新的mapping, 然后将原来索引index的数据通过reindex API导入. 但是现在index根本打不开, 因此也没办法导入.
求问这种情况下有什么好的解决办法? 可以将分词器也设置别名么? 或者有不打开index而迁移数据的方法?
跪谢
{"error":{"root_cause":[{"type":"mapper_parsing_exception","reason":"analyzer [ik] not found for field [xxx]"}]......
应该是IK插件升级后, 取消了名为ik的分词器, 新增了ik_smart和ik_max_word导致的.于是打算新建一个索引index_new, 指定新的mapping, 然后将原来索引index的数据通过reindex API导入. 但是现在index根本打不开, 因此也没办法导入.
求问这种情况下有什么好的解决办法? 可以将分词器也设置别名么? 或者有不打开index而迁移数据的方法?
跪谢
2 个回复
laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net
赞同来自:
同时ES5.X的字符串类型按照是否需要分词分为:text和keyword。
理论上,你建立好新的Mapping(设置好ik分词),然后通过reindex可以了,我看你提及索引打不开的问题。
实在不行:
1、借助第三方工具导入:https://blog.csdn.net/laoyang3 ... 49407
2、写程序解析原来的2.X版本的数据,然后导入ES5.X。
medcl - 今晚打老虎。
赞同来自: