1

在以前版本的 NEST/Elasticsearch.Net (v5.x) 中,我们可以使用以下代码来获取索引设置。

Client.LowLevel.IndicesGetSettings<JObject>(currentIndexName)

但是,这些方法似乎已在 v7.X 中被删除。V7.x 中的等价物是什么?

至少在 Java 方面,有一个带有一些适当文档的 Get Settings API。我在 NEST 上没有看到类似的内容。

https://www.elastic.co/guide/en/elasticsearch/client/java-rest/master/java-rest-high-get-settings.html

如果有人知道等效的 api 和/或任何可用的文档,请告诉我。

谢谢!

4

1 回答 1

0

你可以用client.Indices.GetSettingsAsync方法做到这一点。

这是一个简单的应用程序:

class Program
{
    static async Task Main(string[] args)
    {
        var connectionPool = new SniffingConnectionPool(new[] {new Uri("http://localhost:9200")});
        var settings = new ConnectionSettings(connectionPool)
            .DefaultIndex("index_name")
            .EnableDebugMode()
            .DisableDirectStreaming()
            .PrettyJson();
        var client = new ElasticClient(settings);

        await client.Indices.DeleteAsync("index_name");
        await client.Indices.CreateAsync("index_name", d => d.Settings(s => s.NumberOfShards(20)));

        var getIndexSettingsResponse = await client.Indices.GetSettingsAsync("index_name");

        Console.WriteLine(getIndexSettingsResponse.Indices["index_name"].Settings.NumberOfShards);
    }
}

输出:

20

希望有帮助。

于 2019-11-20T09:56:08.590 回答