Upgrade Elasticsearch 6

最近把项目中的 Elasticsearch 2.4.6 升级到 AWS Elasticsearch 6.3.2,遇到了一些问题,和大家分享一下。


Q1:yii2-elasticsearch 插件不支持 es5 和 es6

我们项目中使用的 yii2-elasticsearch 2.0.x 版本只支持 elastcsearch 1.0 ~ 4.x,8102 年都快过去了,9102 年都快来了,还不支持 es5 和 es6,真是有点说不过去了。所以这次我们只能升级到 yii2-elasticsearch 2.1.x-dev 开发版本,之后再逐渐弃用这个插件。

composer require yiisoft/yii2-elasticsearch:"2.1.x-dev"

Q2:Mapping Types

除了需要注意从 Elasticsearch 6.0 版本开始不再支持一个 index 多个 mapping types 之外,还有一些 mapping 数据类型和 mapping 参数的调整也需要留意。

Q3:Migrating Data

由于 elasticsearch 2.x 版本生成的快照不能在 elasticsearch 6.x 以上版本恢复,所以如果是从其他数据源(比如 MySQL)导入 Elasticseach 的数据,最好的办法就是再执行一次全量同步脚本。如果是只保存在 Elasticseach 里面的数据,就需要先把 elasticsearch 2.x 的数据导出到临时缓存(比如 Redis),然后再从临时缓存导入到 elasticsearch 6.x。


参考:

https://github.com/yiisoft/yii2-elasticsearch
https://www.elastic.co/guide/en/elasticsearch/reference/6.3/removal-of-types.html
https://www.elastic.co/guide/en/cloud/current/ec-migrate-data.html

 510 total views,  1 views today