首页 > 解决方案 > Elasticsearch - 如何使用 NEST 7.1 SDK 重新索引

问题描述

我正在将我的 NEST 版本从 6.8 升级到 7.1。由于它是主要版本升级,我正在经历一些重大变化。

一项重大变化是使用 Reindex API。在 NEST 6.8 早期,我曾经像这样重新索引:

var req = new JObject
{
    { "source", new JObject
        {
            { "index", "sourceIndexName" }
        }
    },
    { "dest", new JObject
        {
            { "index", "destIndexName" }
        }
    }
};
var postDataRequest = JsonConvert.SerializeObject(jsonReindexReq, defaultJsonSerializerSettings);
var response = await elasticSearchClient.LowLevel.ReindexAsync<StringResponse>(postDataRequest, null, cancellationToken);

我现在如何使用 NEST 7.1 来做到这一点?

我看到新 SDK 中有 14 种不同风格的 reindex api,但我无法在网上找到任何示例。

标签: c#elasticsearchnestaws-elasticsearch

解决方案


有几个构造函数,你可以有 cancelToken 或其他一些东西。

查询应该是:

   var reindexResponse = client.ReindexOnServer(r => r 
                .Source(sou => sou.Index("sourceindex"))
                .Destination(des => des.Index("destindex"))
                .WaitForCompletion(true)
                );

推荐阅读