c# - 如何检查是否建立了与 Elasticsearch 的连接?

标签 c# elasticsearch elasticsearch-net

我想检查与 Elasticsearch 数据库的连接是否正常。换句话说,我想 ping Elasticsearch。当我执行下面的代码时,抛出了一个异常。

    public async Task<HealthCheckResult> Execute()
    {
        if (_configuration.Nodes?.Length == 0)
        {
            await Task.Delay(1);
            return new HealthCheckResult("Connection Failed - Missing elasticsearch connection string")
            {
                ChildResults = new List<HealthCheckResult>() {new HealthCheckResult()}
            };
        }

        var node = new Uri(_configuration.Nodes.First());


        try
        {
            var connectionPool = new SniffingConnectionPool(new[] {node});
            var settings = new ConnectionConfiguration(connectionPool);
            var client = new ElasticLowLevelClient(settings);
            client.IndicesExists<string>("applications");
        }
        catch (Exception exception)
        {
            return new HealthCheckResult(exception.Message)
            {
                ChildResults = new List<HealthCheckResult>() { new HealthCheckResult() }
            };
        }

        return new HealthCheckResult("Connection Passed")
        {
            ChildResults = new List<HealthCheckResult>() { new HealthCheckResult() }
        };
    }

当我执行上面的方法时,异常被抛出并且我得到这个消息:

Failed sniffing cluster state.

如何检查是否已建立与 Elasticsearch 的连接?

最佳答案

Nest IElasticClient 接口(interface)为此提供了一个Ping 方法

关于c# - 如何检查是否建立了与 Elasticsearch 的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41380935/

相关文章:

c# - 无法从用法中推断出类型参数

c# - 在 .Net Compact Framework 中使用 X509 证书进行客户端身份验证 HTTPRequest

c# - 在带有 runat=server 的 href <%= xx %> 中使用服务器变量

mongodb - 如何使用logstash将mongodb与elasticsearch连接起来?

Elasticsearch 集群设置问题

elasticsearch - logstash 如何禁用 logstash-plain.log 中的 "Dissector mapping, pattern not found"错误

具有源过滤功能的 ElasticSearch NEST MultiGet

c# - 跨平台顺序 GUID

c# - 如何从 .Net 或 NEST 在 Elasticsearch 5 中创建新索引

elasticsearch - 如何为Elasticsearch Nest使用两个并行聚合