【问题标题】:Elasticsearch-dsl python migration - upgrading major versionsElasticsearch-dsl python迁移——升级主要版本
【发布时间】:2020-12-30 00:43:09
【问题描述】:

基于 Elasticsearch DSL 文档 (https://elasticsearch-dsl.readthedocs.io/en/latest/)

“你必须使用匹配的主要版本”库的兼容性。 具体来说:

对于 Elasticsearch 7.0 及更高版本,请使用库的主要版本 7 (7.x.y)。

对于 Elasticsearch 6.0 及更高版本,请使用库的主要版本 6 (6.x.y)。

那么从 ES 6 升级到 ES 7 的最佳实践是什么? 这似乎意味着你不能让你的代码与 ES 7 服务器前向兼容,而不同时使其与 ES 6 服务器向后不兼容。

我试图避免同时存在两个不同版本的代码,方法是在升级服务器之前先使其就地向前兼容。有没有人这样做过? (我们有很多分析器、标记器、多个文档等,我们真的不希望在迁移过程中在代码中复制它们。)

【问题讨论】:

  • 在我的团队中,我们维护了 2 个不同版本的代码 - 一个用于 ES6,另一个用于 ES7。一团糟。
  • @SowjanyaRBhat 没必要

标签: elasticsearch elasticsearch-dsl


【解决方案1】:

您需要关注upgrade path。无需维护两个不同的代码库。您应该首先确保升级到 ES 6 版本(即 6.7 或 6.8)的最新次要+补丁版本,并确保您的索引与该版本兼容。

您还应该将您的客户端迁移到 ES 6 版本的最新次要+补丁版本,因为 Elastic 确保该版本与下一个主要版本(即 ES 7)前向兼容。

一旦您在 ES 6.7/6.8 上测试了所有内容(并正确备份了您的数据),您就可以安全地升级到 ES 7 并且您的客户端将继续工作。升级 ES 后,您也可以将客户端升级到 ES 7。

【讨论】:

  • 看起来很棒,感谢您提供“首先是集群,然后是客户部门”,简单地说,这很有帮助
  • @Preston 太棒了,很高兴它为你解决了!!
猜你喜欢
  • 1970-01-01
  • 2017-05-20
  • 1970-01-01
  • 2019-12-01
  • 1970-01-01
  • 2021-01-31
  • 1970-01-01
  • 1970-01-01
  • 2022-08-20
相关资源
最近更新 更多