0

我正在使用 Elasticsearch 1.7.5 版。在升级到 2.x 版(甚至 5.x 版)之前,我需要重新索引五个大型索引,以便它们符合 2.x 标准。

不幸的是,由于这个问题,Logstash(和滚动 API)无法重新索引我的数据。


我的问题:

  • 在不使用 Logstash 或滚动 api 的情况下重新索引我的数据的最佳方法是什么?
    • 如果可能的话,我更喜欢使用 Nest。
4

1 回答 1

1

如果您的目标是 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检查操作的状态

于 2017-07-19T00:03:32.553 回答