Skip to content

Commit a139f05

Browse files
committed
Merge pull request #1422 from elastic/fix/1409-raw-filters-are-not-written
Added JsonCoverter for IFilterContainer
2 parents 4394db9 + a19b834 commit a139f05

14 files changed

+83
-16
lines changed

Diff for: src/Nest/DSL/Facets/FacetContainer.cs

+2
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public interface IFacetContainer
3232
IQueryContainer Query { get; set; }
3333

3434
[JsonProperty(PropertyName = "filter")]
35+
[JsonConverter(typeof(CompositeJsonConverter<ReadAsTypeConverter<FilterContainer>, CustomJsonConverter>))]
3536
IFilterContainer Filter { get; set; }
3637

3738
[JsonProperty(PropertyName = "statistical")]
@@ -71,6 +72,7 @@ public class FacetContainer : IFacetContainer
7172
public IQueryContainer Query { get; set; }
7273

7374
[JsonProperty(PropertyName = "filter")]
75+
[JsonConverter(typeof(CompositeJsonConverter<ReadAsTypeConverter<FilterContainer>, CustomJsonConverter>))]
7476
public IFilterContainer Filter { get; set; }
7577

7678
[JsonProperty(PropertyName = "statistical")]

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

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public interface IHasChildFilter : IFilter
1717
IQueryContainer Query { get; set; }
1818

1919
[JsonProperty("filter")]
20+
[JsonConverter(typeof(CompositeJsonConverter<ReadAsTypeConverter<FilterContainer>, CustomJsonConverter>))]
2021
IFilterContainer Filter { get; set; }
2122

2223
[JsonProperty("inner_hits")]

Diff for: src/Nest/DSL/MultiPercolate/IPercolateOperation.cs

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Collections.Generic;
33
using Elasticsearch.Net;
4+
using Nest.Resolvers.Converters;
45
using Newtonsoft.Json;
56

67
namespace Nest
@@ -32,6 +33,7 @@ public interface IPercolateOperation
3233
QueryContainer Query { get; set; }
3334

3435
[JsonProperty(PropertyName = "filter")]
36+
[JsonConverter(typeof(CompositeJsonConverter<ReadAsTypeConverter<FilterContainer>, CustomJsonConverter>))]
3537
FilterContainer Filter { get; set; }
3638

3739
[JsonProperty(PropertyName = "aggs")]

Diff for: src/Nest/DSL/PutAliasDescriptor.cs

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Collections.Generic;
55
using System.Linq;
66
using System.Text;
7+
using Nest.Resolvers.Converters;
78

89
namespace Nest
910
{
@@ -15,6 +16,7 @@ public interface IPutAliasRequest : IIndexOptionalNamePath<PutAliasRequestParame
1516
string Routing { get; set; }
1617

1718
[JsonProperty("filter")]
19+
[JsonConverter(typeof(CompositeJsonConverter<ReadAsTypeConverter<FilterContainer>, CustomJsonConverter>))]
1820
IFilterContainer Filter { get; set; }
1921
}
2022

Diff for: src/Nest/DSL/Query/FilterScoreQueryDescriptor.cs

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ namespace Nest.DSL.Query
1111
public interface IFilterScoreQuery : IQuery
1212
{
1313
[JsonProperty(PropertyName = "filter")]
14+
[JsonConverter(typeof(CompositeJsonConverter<ReadAsTypeConverter<FilterContainer>, CustomJsonConverter>))]
1415
FilterContainer Filter { get; set; }
1516

1617
[JsonProperty(PropertyName = "lang")]

Diff for: src/Nest/DSL/Query/Functions/IFunctionScoreFunction.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,9 @@ public class FunctionScoreFunction<T> : IFunctionScoreFunction
2323
where T : class
2424
{
2525
IFunctionScoreFunction Self { get { return this; } }
26-
26+
2727
[JsonProperty("filter")]
28+
[JsonConverter(typeof(CompositeJsonConverter<ReadAsTypeConverter<FilterContainer>, CustomJsonConverter>))]
2829
FilterContainer IFunctionScoreFunction.Filter { get; set; }
2930

3031
long? IFunctionScoreFunction.Weight

Diff for: src/Nest/DSL/Suggest/PhraseSuggestCollateDescriptor.cs

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Collections.Generic;
44
using System.Linq;
55
using System.Text;
6+
using Nest.Resolvers.Converters;
67

78
namespace Nest
89
{
@@ -13,6 +14,7 @@ public interface IPhraseSuggestCollate
1314
IQueryContainer Query { get; set; }
1415

1516
[JsonProperty(PropertyName = "filter")]
17+
[JsonConverter(typeof(CompositeJsonConverter<ReadAsTypeConverter<FilterContainer>, CustomJsonConverter>))]
1618
IFilterContainer Filter { get; set; }
1719

1820
[JsonProperty(PropertyName = "params")]

Diff for: src/Nest/Domain/Alias/AliasAddOperation.cs

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using Newtonsoft.Json;
1+
using Nest.Resolvers.Converters;
2+
using Newtonsoft.Json;
23

34
namespace Nest
45
{
@@ -9,14 +10,20 @@ public class AliasAddOperation
910
{
1011
[JsonProperty("index")]
1112
public IndexNameMarker Index { get; set; }
13+
1214
[JsonProperty("alias")]
1315
public string Alias { get; set; }
16+
1417
[JsonProperty("filter")]
18+
[JsonConverter(typeof(CompositeJsonConverter<ReadAsTypeConverter<FilterContainer>, CustomJsonConverter>))]
1519
public FilterContainer FilterDescriptor { get; set; }
20+
1621
[JsonProperty("routing")]
1722
public string Routing { get; set; }
23+
1824
[JsonProperty("index_routing")]
1925
public string IndexRouting { get; set; }
26+
2027
[JsonProperty("search_routing")]
2128
public string SearchRouting { get; set; }
2229
}

Diff for: src/Nest/Domain/Alias/AliasDefinition.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using Newtonsoft.Json;
1+
using Nest.Resolvers.Converters;
2+
using Newtonsoft.Json;
23

34
namespace Nest
45
{
@@ -7,6 +8,7 @@ public class AliasDefinition
78
public string Name { get; set; }
89

910
[JsonProperty("filter")]
11+
[JsonConverter(typeof(CompositeJsonConverter<ReadAsTypeConverter<FilterContainer>, CustomJsonConverter>))]
1012
public IFilterContainer Filter { get; internal set; }
1113

1214
[JsonProperty("routing")]

Diff for: src/Nest/Domain/Alias/CreateAliasDescriptor.cs

+2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
using System;
2+
using Nest.Resolvers.Converters;
23
using Newtonsoft.Json;
34

45
namespace Nest
56
{
67
public interface ICreateAliasOperation
78
{
89
[JsonProperty("filter")]
10+
[JsonConverter(typeof(CompositeJsonConverter<ReadAsTypeConverter<FilterContainer>, CustomJsonConverter>))]
911
FilterContainer Filter { get; set; }
1012

1113
[JsonProperty("routing")]

Diff for: src/Nest/Domain/Analysis/Analyzers/CustomAnalyzer.cs

+14-13
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using Nest.Resolvers.Converters;
34
using Newtonsoft.Json;
45

56
namespace Nest
@@ -9,24 +10,24 @@ namespace Nest
910
/// <para>The custom analyzer accepts a logical/registered name of the tokenizer to use, and a list of logical/registered names of token filters.</para>
1011
/// </summary>
1112
public class CustomAnalyzer : AnalyzerBase
12-
{
13-
public CustomAnalyzer(string type)
14-
{
15-
Type = type;
16-
}
13+
{
14+
public CustomAnalyzer(string type)
15+
{
16+
Type = type;
17+
}
1718

18-
public CustomAnalyzer() : this("custom") {}
19+
public CustomAnalyzer() : this("custom") { }
1920

20-
[JsonProperty("tokenizer")]
21-
public string Tokenizer { get; set; }
21+
[JsonProperty("tokenizer")]
22+
public string Tokenizer { get; set; }
2223

23-
[JsonProperty("filter")]
24-
public IList<string> Filter { get; set; }
24+
[JsonProperty("filter")]
25+
public IList<string> Filter { get; set; }
2526

26-
[JsonProperty("char_filter")]
27-
public IList<string> CharFilter { get; set; }
27+
[JsonProperty("char_filter")]
28+
public IList<string> CharFilter { get; set; }
2829

2930
[JsonProperty("alias")]
3031
public IList<string> Alias { get; set; }
31-
}
32+
}
3233
}

Diff for: src/Tests/Nest.Tests.Unit/Nest.Tests.Unit.csproj

+4
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,7 @@
261261
<Compile Include="Internals\Serialize\NullValueHandlingTests.cs" />
262262
<Compile Include="Internals\Serialize\OptOutTests.cs" />
263263
<Compile Include="Internals\Serialize\CustomConvertersTests.cs" />
264+
<Compile Include="ObjectInitializer\Aliases\AliasFilterRequestTests.cs" />
264265
<Compile Include="ObjectInitializer\Aliases\GetAliasMoreUrlTests.cs" />
265266
<Compile Include="ObjectInitializer\Aliases\GetAliasesMoreUrlTests.cs" />
266267
<Compile Include="ObjectInitializer\Aliases\GetAliasRequestTests.cs" />
@@ -735,6 +736,9 @@
735736
<None Include="Internals\Serialize\OptOutDuringMapping.json">
736737
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
737738
</None>
739+
<None Include="ObjectInitializer\Aliases\AliasFilterBody.json">
740+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
741+
</None>
738742
<None Include="ObjectInitializer\Aliases\AliasBody.json">
739743
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
740744
</None>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"actions": [
3+
{
4+
"add": {
5+
"index": "myindex-2014-2-2",
6+
"alias": "myindex",
7+
"filter": { "term" : { "test" : "this_test" } }
8+
}
9+
}
10+
]
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using System.Reflection;
2+
using Elasticsearch.Net;
3+
using NUnit.Framework;
4+
5+
namespace Nest.Tests.Unit.ObjectInitializer.Aliases
6+
{
7+
[TestFixture]
8+
public class AliasFilterRequestTests : BaseJsonTests
9+
{
10+
private readonly IElasticsearchResponse _status;
11+
12+
public AliasFilterRequestTests()
13+
{
14+
var response = _client.Alias(x => x.Add(
15+
addAction => addAction
16+
.Index("myindex-2014-2-2")
17+
.Alias("myindex")
18+
.Filter<object>(filter => filter.Raw(" { \"term\" : { \"test\" : \"this_test\" } }"))
19+
));
20+
_status = response.ConnectionStatus;
21+
}
22+
23+
[Test]
24+
public void AliasFilterBody()
25+
{
26+
JsonEquals(_status.Request, MethodBase.GetCurrentMethod());
27+
}
28+
}
29+
}

0 commit comments

Comments
 (0)