将索引从旧版本的 elasticsearch 迁移到 elasticsearch 7.9

migrate indexes from old version of elasticsearch to elasticsearch 7.9

我们想将项目中的 elasticsearch 版本从 5.6 升级到 7.9。

我必须将我们的索引和文档迁移到新版本,但我不能使用 reindex,所以我让高级客户端连接到 elasticsearch 7 并使用 elasticsearch 5 的 http 请求.

对于迁移,我通过 match_all 查询获取部分文档,并从旧版本滚动并使用批量请求在新的 elasticsearch 中为它们编制索引。

我们的旧版本elasticsearch有3个节点。我的问题是我必须分别向所有节点发送请求并处理文档或如果我将 match_all 查询搜索发送到 一个节点,它将由 elsaticsearch 处理(我阅读了有关处理请求的协调节点的内容,并且每个节点都是隐含的协调节点 cordinating node.) 或者我必须 向数据节点发送请求

当您启动一个 elsticsearch 集群时,您可以将所有集群视为一个单一的数据库。这意味着您可以通过将请求发送到其中一个集群来获取并插入到所有集群。您只需要将您的请求发送到一个节点并获取您的数据。

为@saeednasehi 的回答添加更多细节,看来您对 Elasticsearch 及其查询的内部工作方式感到困惑,请参阅

除此之外,你可以通过连接到任何节点来获取数据,但是在你的 ES 客户端(JHLRC 或 HTTP)你应该提到所有节点的 IP,这样你的请求(注意协调)负载分布在所有数据节点之间,如果你只给一个 node-IP,那么在没有专用协调节点(默认)的情况下,该节点始终充当 co-ordinating 节点。