我们正在准备将Elastic Search 1.7升级到较新的版本。
在开始升级之前我们应该关注的是什么,还有关于我们应该升级到哪个版本的建议?
从1.7升级到5.x在技术上是可行的,还是我们应该先升级到2.x?
发布于 2019-09-18 01:15:59
最近经历过这种情况,当你远远落后时,有两种方法可以升级Elasticsearch:
跨出一步,一次做完所有的事情,或者一次只做一个主要版本。
后者可能更安全,但速度更慢。这可能是由于Elasticsearch非常好的兼容性策略:主要版本X中的任何破坏性更改都将在版本X-1中抛出弃用警告,但仍将继续工作。
就我个人而言,我建议一次使用一个版本,由于这种方法比较复杂,我将对其进行更详细的描述。
这允许使用类似以下的模式:
,请浏览所有版本
以下是一些值得考虑的一般原则
从头开始为新版本重建索引
是的,文档上说,例如,你可以使用load an index created in ES 1.7 into ES2,但我建议你不要这么做。根据我的经验,当你这样做时,一些查询实际上会变慢,即使新版本的Elasticsearch通常至少会保持性能,如果不能提高性能的话。
有查询更改和模式更改。相应地对待它们
通常,每次更新都需要对Elasticsearch模式映射进行一定程度的更改,并对查询结构进行一些更改。查询结构通常更容易迭代,因为它在您的应用程序代码中,并且可以随时改进或回滚。模式更改比较困难,因为它们通常需要您从头开始创建新的索引并以某种方式迁移过来。
但是,请记住,这两种类型的更改都存在。简单地调整您的Elasticsearch模式,直到它在新版本上工作,而不更新您的查询可能会导致意外!
最后,我粗略地列出了每次升级过程中遇到的主要痛点
ES 1 -> ES 2
ES 2 -> ES5
中获得完全相同的结果
https://stackoverflow.com/questions/57977808
复制相似问题