Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions src/Nest/CommonAbstractions/Response/ResponseBase.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
using System;
using System.Diagnostics;
using System.Linq;
using System.Text;
using Elasticsearch.Net;
using Newtonsoft.Json;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System;
using System.Linq;
using System.Threading.Tasks;
using Elasticsearch.Net;

Expand Down Expand Up @@ -30,21 +31,37 @@ public IMultiTermVectorsResponse MultiTermVectors(Func<MultiTermVectorsDescripto
this.MultiTermVectors(selector.InvokeOrDefault(new MultiTermVectorsDescriptor()));

///<inheritdoc/>
public IMultiTermVectorsResponse MultiTermVectors(IMultiTermVectorsRequest request) =>
public IMultiTermVectorsResponse MultiTermVectors(IMultiTermVectorsRequest request) =>
this.Dispatcher.Dispatch<IMultiTermVectorsRequest, MultiTermVectorsRequestParameters, MultiTermVectorsResponse>(
request,
this.LowLevelDispatch.MtermvectorsDispatch<MultiTermVectorsResponse>
(p, d) => this.LowLevelDispatch.MtermvectorsDispatch<MultiTermVectorsResponse>(SetCallDetailsOnTermVectors(p), d)
);

///<inheritdoc/>
public Task<IMultiTermVectorsResponse> MultiTermVectorsAsync(Func<MultiTermVectorsDescriptor, IMultiTermVectorsRequest> selector = null) =>
this.MultiTermVectorsAsync(selector.InvokeOrDefault(new MultiTermVectorsDescriptor()));

///<inheritdoc/>
public Task<IMultiTermVectorsResponse> MultiTermVectorsAsync(IMultiTermVectorsRequest request) =>
public Task<IMultiTermVectorsResponse> MultiTermVectorsAsync(IMultiTermVectorsRequest request) =>
this.Dispatcher.DispatchAsync<IMultiTermVectorsRequest, MultiTermVectorsRequestParameters, MultiTermVectorsResponse, IMultiTermVectorsResponse>(
request,
this.LowLevelDispatch.MtermvectorsDispatchAsync<MultiTermVectorsResponse>
(p, d) => this.LowLevelDispatch.MtermvectorsDispatchAsync<MultiTermVectorsResponse>(SetCallDetailsOnTermVectors(p), d)
);

private IMultiTermVectorsRequest SetCallDetailsOnTermVectors(IMultiTermVectorsRequest request)
{
request.RequestParameters.DeserializationOverride((details, stream) =>
{
var response = this.Serializer.Deserialize<MultiTermVectorsResponse>(stream);

// This is not needed in 5.0 as MultiTermVectorsResponse does not use
// TermVectors response as the collection type
foreach (IResponse termVectorsResponse in response.Documents)
termVectorsResponse.CallDetails = details;

return response;
});
return request;
}
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using Newtonsoft.Json;

namespace Nest
Expand All @@ -11,8 +12,6 @@ public interface IMultiTermVectorsResponse : IResponse
[JsonObject]
public class MultiTermVectorsResponse : ResponseBase, IMultiTermVectorsResponse
{
// TODO For 3.0 we should create a separate term vector object rather than using TermVectorsResponse
// since it contains general response data that isn't relevant (i.e. ApiCall, StatusCode, etc...)
[JsonProperty("docs")]
public IEnumerable<TermVectorsResponse> Documents { get; internal set; } = new List<TermVectorsResponse>();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ protected override void ExpectResponse(IMultiTermVectorsResponse response)
{
response.ShouldBeValid();
response.Documents.Should().NotBeEmpty().And.HaveCount(2).And.OnlyContain(d => d.Found);
response.Documents.All(r => r.IsValid).Should().BeTrue();

var termvectorDoc = response.Documents.FirstOrDefault(d => d.TermVectors.Count > 0);

termvectorDoc.Should().NotBeNull();
Expand Down