Skip to content

Commit c129153

Browse files
committed
Merge branch 'TruffleMuffin-develop' into develop
2 parents 6ab190e + 314f87e commit c129153

File tree

4 files changed

+52
-1
lines changed

4 files changed

+52
-1
lines changed

Diff for: src/Nest/DSL/Filter/FilterDescriptor.cs

+2
Original file line numberDiff line numberDiff line change
@@ -520,6 +520,7 @@ public FilterContainer Terms(Expression<Func<T, object>> fieldDescriptor, IEnume
520520
ITermsFilter filter = new TermsFilterDescriptor();
521521
filter.Field = fieldDescriptor;
522522
filter.Terms = terms;
523+
filter.Execution = Execution;
523524
return this.New(filter, f=>f.Terms = filter);
524525
}
525526

@@ -531,6 +532,7 @@ public FilterContainer Terms(string field, IEnumerable<string> terms, TermsExecu
531532
ITermsFilter filter = new TermsFilterDescriptor();
532533
filter.Field = field;
533534
filter.Terms = terms ?? Enumerable.Empty<string>();
535+
filter.Execution = Execution;
534536
return this.New(filter, f=>f.Terms = filter);
535537
}
536538

Diff for: src/Tests/Nest.Tests.MockData/Domain/ElasticsearchProject.cs

+2
Original file line numberDiff line numberDiff line change
@@ -55,5 +55,7 @@ public class ElasticsearchProject
5555

5656
[ElasticProperty(Type=FieldType.Object)]
5757
public Product Product { get; set; }
58+
59+
public string[] MyStringArrayField { get; set; }
5860
}
5961
}

Diff for: src/Tests/Nest.Tests.Unit/Search/Filter/Singles/TermsFilterJson.cs

+46
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,52 @@ public void TermsFilterWithCache()
5252
Assert.True(json.JsonEquals(expected), json);
5353
}
5454

55+
[Test]
56+
public void TermsFilter_EnumerableOfStringOverLoad_WithNonDefaultExecutionSpecified_AppliesExecution()
57+
{
58+
var s = new SearchDescriptor<ElasticsearchProject>()
59+
.From(0)
60+
.Size(10)
61+
.Filter(ff => ff
62+
.Terms(f => f.MyStringArrayField, new[] { "elasticsearch.pm" }, Execution: TermsExecution.Bool)
63+
);
64+
65+
var json = TestElasticClient.Serialize(s);
66+
var expected = @"{ from: 0, size: 10,
67+
filter : {
68+
terms: {
69+
""myStringArrayField"": [""elasticsearch.pm""],
70+
execution: ""bool""
71+
}
72+
73+
}
74+
}";
75+
Assert.True(json.JsonEquals(expected), json);
76+
}
77+
78+
[Test]
79+
public void TermsFilter_NonLambdaField_WithNonDefaultExecutionSpecified_AppliesExecution()
80+
{
81+
var s = new SearchDescriptor<ElasticsearchProject>()
82+
.From(0)
83+
.Size(10)
84+
.Filter(ff => ff
85+
.Terms("myStringArrayField", new[] { "elasticsearch.pm" }, Execution: TermsExecution.Bool)
86+
);
87+
88+
var json = TestElasticClient.Serialize(s);
89+
var expected = @"{ from: 0, size: 10,
90+
filter : {
91+
terms: {
92+
""myStringArrayField"": [""elasticsearch.pm""],
93+
execution: ""bool""
94+
}
95+
96+
}
97+
}";
98+
Assert.True(json.JsonEquals(expected), json);
99+
}
100+
55101
[Test]
56102
public void TermsFilterWithConditionlessQueryWithCache()
57103
{

Diff for: src/Tests/Nest.Tests.Unit/Search/SearchOptions/SearchOptionTests.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,8 @@ public void TestFieldsWithExclusionsByProperty()
201201
""stupidIntIWantAsLong"",
202202
""myAttachment"",
203203
""myBinaryField"",
204-
""product""
204+
""product"",
205+
""myStringArrayField""
205206
]
206207
}";
207208
Assert.True(json.JsonEquals(expected));

0 commit comments

Comments
 (0)