diff --git a/src/Nest/DSL/Query/MatchQueryDescriptor.cs b/src/Nest/DSL/Query/MatchQueryDescriptor.cs index 0a9260d1430..43ea7b12a9c 100644 --- a/src/Nest/DSL/Query/MatchQueryDescriptor.cs +++ b/src/Nest/DSL/Query/MatchQueryDescriptor.cs @@ -55,6 +55,9 @@ public interface IMatchQuery : IFieldNameQuery Operator? Operator { get; set; } PropertyPathMarker Field { get; set; } + + [JsonProperty(PropertyName = "fuzzy_transpositions")] + bool? FuzzyTranspositions { get; set; } } public class MatchQuery : PlainQuery, IMatchQuery @@ -91,6 +94,7 @@ void IFieldNameQuery.SetFieldName(string fieldName) public string MinimumShouldMatch { get; set; } public Operator? Operator { get; set; } public PropertyPathMarker Field { get; set; } + public bool? FuzzyTranspositions { get; set; } } @@ -129,7 +133,9 @@ public class MatchQueryDescriptor : IMatchQuery where T : class PropertyPathMarker IMatchQuery.Field { get; set; } - bool IQuery.IsConditionless + bool? IMatchQuery.FuzzyTranspositions { get; set; } + + bool IQuery.IsConditionless { get { @@ -235,6 +241,12 @@ public MatchQueryDescriptor Operator(Operator op) Self.Operator = op; return this; } + + public MatchQueryDescriptor FuzzyTranspositions(bool transpositions = true) + { + Self.FuzzyTranspositions = transpositions; + return this; + } } } diff --git a/src/Nest/Resolvers/Converters/Queries/MatchQueryJsonConverter.cs b/src/Nest/Resolvers/Converters/Queries/MatchQueryJsonConverter.cs index 96dead1b771..54062b96f9f 100644 --- a/src/Nest/Resolvers/Converters/Queries/MatchQueryJsonConverter.cs +++ b/src/Nest/Resolvers/Converters/Queries/MatchQueryJsonConverter.cs @@ -50,6 +50,7 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist fq.PrefixLength = GetPropValue(jo, "prefix_length"); fq.Query = GetPropValue(jo, "query"); fq.Slop = GetPropValue(jo, "slop"); + fq.FuzzyTranspositions = GetPropValue(jo, "fuzzy_transpositions"); var rewriteString = GetPropValue(jo, "rewrite"); if (!rewriteString.IsNullOrEmpty()) diff --git a/src/Tests/Nest.Tests.Unit/QueryParsers/Queries/MatchQueryTests.cs b/src/Tests/Nest.Tests.Unit/QueryParsers/Queries/MatchQueryTests.cs index f4c7e2afc9b..9cf3c4d7424 100644 --- a/src/Tests/Nest.Tests.Unit/QueryParsers/Queries/MatchQueryTests.cs +++ b/src/Tests/Nest.Tests.Unit/QueryParsers/Queries/MatchQueryTests.cs @@ -25,6 +25,7 @@ public void Match_Deserializes() .Query("querytext") .Rewrite(RewriteMultiTerm.ConstantScoreBoolean) .Slop(2) + .FuzzyTranspositions() ) ); @@ -41,6 +42,7 @@ public void Match_Deserializes() q.Query.Should().Be("querytext"); q.Rewrite.Should().Be(RewriteMultiTerm.ConstantScoreBoolean); q.Slop.Should().Be(2); + q.FuzzyTranspositions.Should().BeTrue(); } [Test] @@ -61,6 +63,7 @@ public void MatchPhrasePhrefix_Deserializes() .Query("querytext") .Rewrite(RewriteMultiTerm.ConstantScoreBoolean) .Slop(2) + .FuzzyTranspositions(false) ) ); q.Type.Should().Be("phrase_prefix"); @@ -76,6 +79,7 @@ public void MatchPhrasePhrefix_Deserializes() q.Query.Should().Be("querytext"); q.Rewrite.Should().Be(RewriteMultiTerm.ConstantScoreBoolean); q.Slop.Should().Be(2); + q.FuzzyTranspositions.Should().BeFalse(); } [Test]