diff --git a/src/Nest/CommonOptions/Fuzziness/Fuzziness.cs b/src/Nest/CommonOptions/Fuzziness/Fuzziness.cs index 675ecb26d9a..a3c7bfdad3c 100644 --- a/src/Nest/CommonOptions/Fuzziness/Fuzziness.cs +++ b/src/Nest/CommonOptions/Fuzziness/Fuzziness.cs @@ -1,24 +1,24 @@ -namespace Nest +using System; + +namespace Nest { public class Fuzziness : IFuzziness { private bool _auto; private int? _editDistance; private double? _ratio; - bool IFuzziness.Auto { get { return this._auto; } } - int? IFuzziness.EditDistance { get { return this._editDistance; } } - double? IFuzziness.Ratio { get { return this._ratio; } } + bool IFuzziness.Auto => this._auto; + + int? IFuzziness.EditDistance => this._editDistance; + + [Obsolete("Deprecated. Setting this is a noop")] + double? IFuzziness.Ratio => this._ratio; - public static Fuzziness Auto { get { return new Fuzziness() { _auto = true }; } } + public static Fuzziness Auto => new Fuzziness { _auto = true }; - public static Fuzziness EditDistance(int distance) - { - return new Fuzziness() { _editDistance = distance }; - } + public static Fuzziness EditDistance(int distance) => new Fuzziness { _editDistance = distance }; - public static Fuzziness Ratio(double ratio) - { - return new Fuzziness() { _ratio = ratio }; - } + [Obsolete("Deprecated. Setting this is a noop")] + public static Fuzziness Ratio(double ratio) => new Fuzziness { _ratio = ratio }; } -} \ No newline at end of file +} diff --git a/src/Nest/CommonOptions/Fuzziness/FuzzinessJsonConverter.cs b/src/Nest/CommonOptions/Fuzziness/FuzzinessJsonConverter.cs index 11f0165de7d..9db62921d63 100644 --- a/src/Nest/CommonOptions/Fuzziness/FuzzinessJsonConverter.cs +++ b/src/Nest/CommonOptions/Fuzziness/FuzzinessJsonConverter.cs @@ -12,10 +12,9 @@ internal class FuzzinessJsonConverter : JsonConverter public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var v = value as IFuzziness; - if (v.Auto) writer.WriteValue("AUTO"); - else if (v.EditDistance.HasValue) writer.WriteValue(v.EditDistance.Value); - else if (v.Ratio.HasValue) writer.WriteValue(v.Ratio.Value); - else writer.WriteNull(); + if (v.Auto) writer.WriteValue("AUTO"); + else if (v.EditDistance.HasValue) writer.WriteValue(v.EditDistance.Value); + else writer.WriteNull(); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) @@ -27,13 +26,8 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist var editDistance = Convert.ToInt32(reader.Value); return Fuzziness.EditDistance(editDistance); } - if (reader.TokenType == JsonToken.Float) - { - var ratio = (reader.Value as double?).GetValueOrDefault(0); - return Fuzziness.Ratio(ratio); - } return null; } } -} \ No newline at end of file +} diff --git a/src/Nest/CommonOptions/Fuzziness/IFuzziness.cs b/src/Nest/CommonOptions/Fuzziness/IFuzziness.cs index 527207bb043..b5e62a81ebb 100644 --- a/src/Nest/CommonOptions/Fuzziness/IFuzziness.cs +++ b/src/Nest/CommonOptions/Fuzziness/IFuzziness.cs @@ -1,4 +1,5 @@ -using Newtonsoft.Json; +using System; +using Newtonsoft.Json; namespace Nest { @@ -7,6 +8,8 @@ public interface IFuzziness { bool Auto { get; } int? EditDistance { get; } + + [Obsolete("Deprecated. Setting this is a noop")] double? Ratio { get; } } -} \ No newline at end of file +} diff --git a/src/Nest/QueryDsl/TermLevel/Terms/TermsQuery.cs b/src/Nest/QueryDsl/TermLevel/Terms/TermsQuery.cs index a65170d717b..f20e9f4b2c9 100644 --- a/src/Nest/QueryDsl/TermLevel/Terms/TermsQuery.cs +++ b/src/Nest/QueryDsl/TermLevel/Terms/TermsQuery.cs @@ -10,7 +10,9 @@ namespace Nest [JsonConverter(typeof(TermsQueryJsonConverter))] public interface ITermsQuery : IFieldNameQuery { + [Obsolete("Will be removed in 5.0. Use bool query instead")] MinimumShouldMatch MinimumShouldMatch { get; set; } + [Obsolete("Will be removed in 5.0. Use bool query instead")] bool? DisableCoord { get; set; } IEnumerable Terms { get; set; } IFieldLookup TermsLookup { get; set; } @@ -19,7 +21,9 @@ public interface ITermsQuery : IFieldNameQuery public class TermsQuery : FieldNameQueryBase, ITermsQuery { protected override bool Conditionless => IsConditionless(this); + [Obsolete("Will be removed in 5.0. Use bool query instead")] public MinimumShouldMatch MinimumShouldMatch { get; set; } + [Obsolete("Will be removed in 5.0. Use bool query instead")] public bool? DisableCoord { get; set; } public IEnumerable Terms { get; set; } public IFieldLookup TermsLookup { get; set; } @@ -54,7 +58,9 @@ public class TermsQueryDescriptor , ITermsQuery where T : class { protected override bool Conditionless => TermsQuery.IsConditionless(this); + [Obsolete("Will be removed in 5.0. Use bool query instead")] MinimumShouldMatch ITermsQuery.MinimumShouldMatch { get; set; } + [Obsolete("Will be removed in 5.0. Use bool query instead")] bool? ITermsQuery.DisableCoord { get; set; } IEnumerable ITermsQuery.Terms { get; set; } IFieldLookup ITermsQuery.TermsLookup { get; set; } @@ -62,8 +68,10 @@ public class TermsQueryDescriptor public TermsQueryDescriptor TermsLookup(Func, IFieldLookup> selector) where TOther : class => Assign(a => a.TermsLookup = selector(new FieldLookupDescriptor())); + [Obsolete("Will be removed in 5.0. Use bool query instead")] public TermsQueryDescriptor MinimumShouldMatch(MinimumShouldMatch minMatch) => Assign(a => a.MinimumShouldMatch = minMatch); + [Obsolete("Will be removed in 5.0. Use bool query instead")] public TermsQueryDescriptor DisableCoord(bool? disable = true) => Assign(a => a.DisableCoord = disable); public TermsQueryDescriptor Terms(IEnumerable terms) => Assign(a => a.Terms = terms?.Cast()); diff --git a/src/Nest/QueryDsl/TermLevel/Terms/TermsQueryJsonConverter.cs b/src/Nest/QueryDsl/TermLevel/Terms/TermsQueryJsonConverter.cs index 0b7c495c8b9..64df4940b83 100644 --- a/src/Nest/QueryDsl/TermLevel/Terms/TermsQueryJsonConverter.cs +++ b/src/Nest/QueryDsl/TermLevel/Terms/TermsQueryJsonConverter.cs @@ -32,6 +32,7 @@ public override void WriteJson(JsonWriter writer, object value, JsonSerializer s writer.WritePropertyName(field); serializer.Serialize(writer, t.TermsLookup); } +#pragma warning disable 618 if (t.DisableCoord.HasValue) { writer.WritePropertyName("disable_coord"); @@ -42,6 +43,7 @@ public override void WriteJson(JsonWriter writer, object value, JsonSerializer s writer.WritePropertyName("minimum_should_match"); serializer.Serialize(writer, t.MinimumShouldMatch); } +#pragma warning restore 618 if (t.Boost.HasValue) { writer.WritePropertyName("boost"); @@ -68,6 +70,7 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist var property = reader.Value as string; switch (property) { +#pragma warning disable 618 case "disable_coord": reader.Read(); f.DisableCoord = reader.Value as bool?; @@ -77,6 +80,7 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist var min = serializer.Deserialize(reader); f.MinimumShouldMatch = min; break; +#pragma warning restore 618 case "boost": reader.Read(); f.Boost = reader.Value as double?; diff --git a/src/Tests/QueryDsl/TermLevel/Terms/TermsListQueryUsageTests.cs b/src/Tests/QueryDsl/TermLevel/Terms/TermsListQueryUsageTests.cs index f69b7edf224..5cac6746862 100644 --- a/src/Tests/QueryDsl/TermLevel/Terms/TermsListQueryUsageTests.cs +++ b/src/Tests/QueryDsl/TermLevel/Terms/TermsListQueryUsageTests.cs @@ -7,6 +7,8 @@ using Tests.Framework.Integration; using Tests.Framework.MockData; +#pragma warning disable 618 // DisableCoord and MinimumShouldMatch + namespace Tests.QueryDsl.TermLevel.Terms { public class TermsListQueryUsageTests : QueryDslUsageTestsBase @@ -80,7 +82,6 @@ protected override QueryContainer QueryFluent(QueryContainerDescriptor .DisableCoord() .Terms(_terms) ); - } public class TermsListOfListStringAgainstNumericFieldIntegrationTests : QueryDslIntegrationTestsBase @@ -132,7 +133,5 @@ [I] public Task AsserResponse() => AssertOnAllResponses(r => var rootCause = rootCauses.First(); rootCause.Type.Should().Be("number_format_exception"); }); - } - } diff --git a/src/Tests/QueryDsl/TermLevel/Terms/TermsQueryUsageTests.cs b/src/Tests/QueryDsl/TermLevel/Terms/TermsQueryUsageTests.cs index 32ed0aad48f..9415951a9a7 100644 --- a/src/Tests/QueryDsl/TermLevel/Terms/TermsQueryUsageTests.cs +++ b/src/Tests/QueryDsl/TermLevel/Terms/TermsQueryUsageTests.cs @@ -6,7 +6,9 @@ namespace Tests.QueryDsl.TermLevel.Terms { - /** +#pragma warning disable 618 // DisableCoord and MinimumShouldMatch + + /** * Filters documents that have fields that match any of the provided terms (not analyzed). * * Be sure to read the Elasticsearch documentation on {ref_current}/query-dsl-terms-query.html[Terms query] for more information. @@ -59,7 +61,7 @@ protected override QueryContainer QueryFluent(QueryContainerDescriptor } /**[float] - *== Single term Terms Query + *== Single term Terms Query */ public class SingleTermTermsQueryUsageTests : TermsQueryUsageTests { @@ -77,6 +79,4 @@ protected override QueryContainer QueryFluent(QueryContainerDescriptor .Terms("term1") ); } - - }