diff --git a/src/Nest/Domain/Responses/MultiTermVectorResponse.cs b/src/Nest/Domain/Responses/MultiTermVectorResponse.cs index 76b492c7f9f..691d99f15ff 100644 --- a/src/Nest/Domain/Responses/MultiTermVectorResponse.cs +++ b/src/Nest/Domain/Responses/MultiTermVectorResponse.cs @@ -5,21 +5,26 @@ namespace Nest { - public interface IMultiTermVectorResponse : IResponse - { - IEnumerable Documents { get; } - } + public interface IMultiTermVectorResponse : IResponse + { + [Obsolete("In 1.x this property does not return metadata for the documents, switch to .Docs or upgrade to 2.0 when its release")] + IEnumerable Documents { get; } + IEnumerable Docs { get; } + } - [JsonObject] - public class MultiTermVectorResponse : BaseResponse, IMultiTermVectorResponse - { - public MultiTermVectorResponse() - { - IsValid = true; - Documents = new List(); - } + [JsonObject] + public class MultiTermVectorResponse : BaseResponse, IMultiTermVectorResponse + { + public MultiTermVectorResponse() + { + IsValid = true; + Docs = new List(); + } - [JsonProperty("docs")] - public IEnumerable Documents { get; internal set; } - } + [Obsolete("In 1.x this property does not return metadata for the documents, switch to .Docs or upgrade to 2.0 when its release")] + public IEnumerable Documents { get { return this.Docs; } } + + [JsonProperty("docs")] + public IEnumerable Docs { get; internal set; } + } } diff --git a/src/Nest/Domain/Responses/TermVectorResponse.cs b/src/Nest/Domain/Responses/TermVectorResponse.cs index 041ddc6942c..3d111649a7e 100644 --- a/src/Nest/Domain/Responses/TermVectorResponse.cs +++ b/src/Nest/Domain/Responses/TermVectorResponse.cs @@ -5,25 +5,54 @@ namespace Nest { - public interface ITermVectorResponse : IResponse - { - bool Found { get; } - IDictionary TermVectors { get; } - } - - [JsonObject] - public class TermVectorResponse : BaseResponse, ITermVectorResponse - { - public TermVectorResponse() - { - IsValid = true; - TermVectors = new Dictionary(); - } - - [JsonProperty("found")] - public bool Found { get; internal set; } - - [JsonProperty("term_vectors")] - public IDictionary TermVectors { get; internal set; } - } + public interface ITermVectorResponse : IResponse + { + bool Found { get; } + IDictionary TermVectors { get; } + } + + public interface IMultiTermVectorHit : ITermVectorResponse + { + string Index { get; } + string Type { get; } + string Id { get; } + long Version { get; } + long Took { get; } + } + + [JsonObject] + public class TermVectorResponse : BaseResponse, ITermVectorResponse + { + public TermVectorResponse() + { + IsValid = true; + TermVectors = new Dictionary(); + } + + [JsonProperty("found")] + public bool Found { get; internal set; } + + + [JsonProperty("term_vectors")] + public IDictionary TermVectors { get; internal set; } + } + + public class MultiTermVectorHit : TermVectorResponse, IMultiTermVectorHit + { + [JsonProperty("_index")] + public string Index { get; internal set; } + + [JsonProperty("_type")] + public string Type { get; internal set; } + + [JsonProperty("_id")] + public string Id { get; internal set; } + + [JsonProperty("_version")] + public long Version { get; internal set; } + + [JsonProperty("took")] + public long Took { get; internal set; } + + } } diff --git a/src/Tests/Nest.Tests.Integration/Core/TermVectors/MultiTermVectorsTests.cs b/src/Tests/Nest.Tests.Integration/Core/TermVectors/MultiTermVectorsTests.cs index 929af3c0b79..32148408f97 100644 --- a/src/Tests/Nest.Tests.Integration/Core/TermVectors/MultiTermVectorsTests.cs +++ b/src/Tests/Nest.Tests.Integration/Core/TermVectors/MultiTermVectorsTests.cs @@ -44,11 +44,17 @@ public void MultiTermVectorsTest_DocumentsInBody() result.IsValid.Should().BeTrue(); - result.Documents.Should().NotBeNull(); - result.Documents.Count().Should().Be(2); + result.Docs.Should().NotBeNull(); + result.Docs.Count().Should().Be(2); - foreach (var document in result.Documents) + foreach (var document in result.Docs) { + document.Index.Should().NotBeNullOrWhiteSpace(); + document.Type.Should().NotBeNullOrWhiteSpace(); + document.Id.Should().NotBeNullOrWhiteSpace(); + document.Version.Should().BeGreaterThan(0); + document.Took.Should().BeGreaterThan(0); + document.TermVectors.Count().Should().Be(1); document.TermVectors.First().Key.Should().Be("content"); }