配置ElasticClient连接池

时间:2015-01-29 04:04:40

标签: elasticsearch nest

我目前正在更新我们的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一起使用?

1 个答案:

答案 0 :(得分:1)

您可以使用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);