我正在使用 Elasticsearch 1.7.5 版。在升级到 2.x 版(甚至 5.x 版)之前,我需要重新索引五个大型索引,以便它们符合 2.x 标准。
不幸的是,由于这个问题,Logstash(和滚动 API)无法重新索引我的数据。
我的问题:
- 在不使用 Logstash 或滚动 api 的情况下重新索引我的数据的最佳方法是什么?
- 如果可能的话,我更喜欢使用 Nest。
我正在使用 Elasticsearch 1.7.5 版。在升级到 2.x 版(甚至 5.x 版)之前,我需要重新索引五个大型索引,以便它们符合 2.x 标准。
不幸的是,由于这个问题,Logstash(和滚动 API)无法重新索引我的数据。
我的问题:
如果您的目标是 Elasticsearch 5.0+,您可以使用重新索引 API将远程 Elasticsearch 集群(1.7.5 集群)中的数据重新索引到 Elasticsearch 5.0+。
NEST 5.x 将 reindex API 公开为ReindexOnServer()
方法
client.ReindexOnServer(r => r
.Source(s => s
.Remote(sr => sr
// URI to 1.7.5 cluster
.Host(new Uri("http://localhost:9201"))
)
.Index("entries")
)
.Destination(d => d
.Index("entries")
)
.WaitForCompletion(true)
);
WaitForCompletion
确定调用是否应等待重新索引完成。如果为 false,Task
则响应上的属性可用于使用任务 API检查操作的状态