首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Elastic Search 1.7升级到更新版本

将Elastic Search 1.7升级到更新版本
EN

Stack Overflow用户
提问于 2019-09-17 23:46:27
回答 1查看 44关注 0票数 0

我们正在准备将Elastic Search 1.7升级到较新的版本。

在开始升级之前我们应该关注的是什么,还有关于我们应该升级到哪个版本的建议?

从1.7升级到5.x在技术上是可行的,还是我们应该先升级到2.x?

EN

回答 1

Stack Overflow用户

发布于 2019-09-18 01:15:59

最近经历过这种情况,当你远远落后时,有两种方法可以升级Elasticsearch:

跨出一步,一次做完所有的事情,或者一次只做一个主要版本。

后者可能更安全,但速度更慢。这可能是由于Elasticsearch非常好的兼容性策略:主要版本X中的任何破坏性更改都将在版本X-1中抛出弃用警告,但仍将继续工作。

就我个人而言,我建议一次使用一个版本,由于这种方法比较复杂,我将对其进行更详细的描述。

这允许使用类似以下的模式:

  1. 修复了版本2上的版本1
  2. 测试中的所有弃用警告,并在满意时推出到生产环境。如果有问题,您可以随时回滚到版本2(但是,您必须从头开始创建新索引)
  3. 修复版本2上的所有弃用警告
  4. 测试并升级到版本5(没有3或4)
  5. 等...如果您想要

,请浏览所有版本

以下是一些值得考虑的一般原则

从头开始为新版本重建索引

是的,文档上说,例如,你可以使用load an index created in ES 1.7 into ES2,但我建议你不要这么做。根据我的经验,当你这样做时,一些查询实际上会变慢,即使新版本的Elasticsearch通常至少会保持性能,如果不能提高性能的话。

有查询更改和模式更改。相应地对待它们

通常,每次更新都需要对Elasticsearch模式映射进行一定程度的更改,并对查询结构进行一些更改。查询结构通常更容易迭代,因为它在您的应用程序代码中,并且可以随时改进或回滚。模式更改比较困难,因为它们通常需要您从头开始创建新的索引并以某种方式迁移过来。

但是,请记住,这两种类型的更改都存在。简单地调整您的Elasticsearch模式,直到它在新版本上工作,而不更新您的查询可能会导致意外!

最后,我粗略地列出了每次升级过程中遇到的主要痛点

ES 1 -> ES 2

ES 2 -> ES5

  • String datatype已拆分为text and keyword datatypes
  • TF/IDF评分,替换为BM25。这个查询不需要您做任何工作,但可能会更改某些查询的结果。在ES5中,尤其是在ES6中,BM25评分更具可配置性,但您可能无法在ES5和ES2

中获得完全相同的结果

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57977808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档