From e73bdc46c65050189be989fa67b7a0126182d4db Mon Sep 17 00:00:00 2001 From: Stuart Cam Date: Thu, 20 Jun 2019 14:50:00 +1000 Subject: [PATCH] Adding took time to _msearch Implements: https://github.com/elastic/elasticsearch/pull/23767 --- src/Nest/Search/MultiSearch/MultiSearchResponse.cs | 2 ++ src/Nest/Search/MultiSearch/MultiSearchResponseFormatter.cs | 5 +++++ src/Tests/Tests/Search/MultiSearch/MultiSearchApiTests.cs | 2 ++ 3 files changed, 9 insertions(+) diff --git a/src/Nest/Search/MultiSearch/MultiSearchResponse.cs b/src/Nest/Search/MultiSearch/MultiSearchResponse.cs index b22551696b3..63dd3deec0c 100644 --- a/src/Nest/Search/MultiSearch/MultiSearchResponse.cs +++ b/src/Nest/Search/MultiSearch/MultiSearchResponse.cs @@ -13,6 +13,8 @@ public class MultiSearchResponse : ResponseBase { public MultiSearchResponse() => Responses = new Dictionary(); + public long Took { get; set; } + public IEnumerable AllResponses => _allResponses(); public override bool IsValid => base.IsValid && AllResponses.All(b => b.IsValid); diff --git a/src/Nest/Search/MultiSearch/MultiSearchResponseFormatter.cs b/src/Nest/Search/MultiSearch/MultiSearchResponseFormatter.cs index 6f75c03cad8..941839a12ab 100644 --- a/src/Nest/Search/MultiSearch/MultiSearchResponseFormatter.cs +++ b/src/Nest/Search/MultiSearch/MultiSearchResponseFormatter.cs @@ -36,6 +36,11 @@ public MultiSearchResponse Deserialize(ref JsonReader reader, IJsonFormatterReso responses.Add(reader.ReadNextBlockSegment()); break; } + else if (propertyName == "took") + { + response.Took = reader.ReadInt64(); + continue; + } reader.ReadNextBlock(); } diff --git a/src/Tests/Tests/Search/MultiSearch/MultiSearchApiTests.cs b/src/Tests/Tests/Search/MultiSearch/MultiSearchApiTests.cs index 37cce58dec2..1ccd6f1beb5 100644 --- a/src/Tests/Tests/Search/MultiSearch/MultiSearchApiTests.cs +++ b/src/Tests/Tests/Search/MultiSearch/MultiSearchApiTests.cs @@ -122,6 +122,8 @@ protected override LazyResponses ClientUsage() => Calls( [I] public Task AssertResponse() => AssertOnAllResponses(r => { + r.Took.Should().BeGreaterThan(0); + r.TotalResponses.Should().Be(6); var nvalidResponses = r.GetInvalidResponses();