elasticsearch - 什么是IElasticSearchResponse.NumberOfRetries的Elasticsearch.Net 2.x等效项?

标签 elasticsearch elasticsearch-net

我正在开发一个使用Elasticsearch .NET客户端库(Elasticsearch.Net和NEST)的应用程序,作为从Elasticsearch 1.x到2.x转换的一部分,我正在尝试制定2.x等效于以前通过IElasticSearchResponse公开的某些数据。

在1.x实现中,我们在提供给ConnectionSettings.SetConnectionStatusHandler()的方法中执行了以下逻辑:

    private static void LogElasticSearch1DotXMetrics(IElasticsearchResponse resp)
    {
        if (resp.NumberOfRetries > 0)
            PerformSomeLoggingOperationOn(resp.NumberOfRetries);
    }

我相信在2.x中,等效于ConnectionSettings.SetConnectionStatusHandler()的方法是将方法传递给ConnectionSettings.OnRequestCompleted()。该方法将接收一个IApiCallDetails实例。
    private static void LogElasticSearch2DotXMetrics(IApiCallDetails details)
    {
        PerformSomeLoggingOperationOn(details.??????);
    }

我无法在IElasticSearchResponse.NumberOfRetries上找到明显的IApiCallDetails等效项。谁能指出我正确的方向?

最佳答案

我将这个问题提供给Elasticsearch支持,并在这里总结他们的回答,以防其他人觉得有用。

在Elasticsearch.NET 2.x中没有与NumberOfRetries直接等效的功能。但是,在达到最大重试次数的情况下会发生事件。

var maxRetriesReached = callDetails.AuditTrail
    .Any(a => a.Event == AuditEvent.MaxRetriesReached);

另外,如果您真的对重试次数感兴趣,而不是是否放弃查询,则还可以观察BadResponse事件的审核记录。
var badResponses = callDetails.AuditTrail
    .Any(a => a.Event == AuditEvent.BadResponse);

关于elasticsearch - 什么是IElasticSearchResponse.NumberOfRetries的Elasticsearch.Net 2.x等效项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38602670/

相关文章:

datetime - 当在Elasticsearch中为文档建立索引时,NEST正在添加TimeZone

c# - 弹性查询以从mongodb数据C#中消除空格

elasticsearch - 在NEST 2.3.3中(由NEST 1.6.2升级)替换了TermsExecution。

java - org.apache.http.ContentTooLongException : entity content is too long [105539255] for the configured buffer limit [104857600]

elasticsearch - Logstash CSV配置以访问嵌套的JSON字段

elasticsearch - 提示者补全Elasticsearch不适用于数字

elasticsearch - 如何在Elasticsearch中将某些单词组合成 token ?

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

elasticsearch - 如何格式化Filebeat中的日志

elasticsearch - 在elasticsearch中使用MinimumShouldMatch和术语查询