配置 ElasticClient 连接池

Configuring ElasticClient connection pooling

我目前正在更新我们的 elasticsearch 代码以使用 Nest 的 IElasticClient 提供的内置连接池。所以在我们使用

之前
var settings = new ConnectionSettings(new Uri(connString));
var esClient = new ElasticClient(settings);

现在我希望能够像这样传入已配置的连接池(如 Nest's docs 中所述)

var connectionPool = new SniffingConnectionPool(new[] { new Uri(connString});
var config = new ConnectionConfiguration(connectionPool);
                     .SniffOnConnectionFault(false)
                     .SniffOnStartup(false)
                     .SniffLifeSpan(TimeSpan.FromMinutes(1));
var client = new ElasticsearchClient(config);

但是,他们使用原始的 ElasticsearchClient 来执行此操作。 Nest 的 ElasticClient 构造函数不提供传入 ConnectionConfiguration 的能力,只能传入 ConnectionPool。

有人知道如何将 ConnectionConfiguration 与 ElasticClient 一起使用吗?

您可以为此使用 Nest.ConnectionSettings。请看下面的代码:

var connectionPool = new SniffingConnectionPool(new[] { new Uri(connString});
var config = new ConnectionSettings(connectionPool)
    .SniffOnConnectionFault(false)
    .SniffOnStartup(false)
    .SniffLifeSpan(TimeSpan.FromMinutes(1));
var client = new ElasticClient(config);