diff --git a/src/Nest/DSL/Filter/HasChildFilterDescriptor.cs b/src/Nest/DSL/Filter/HasChildFilterDescriptor.cs index 0ac0f7b7d46..c110a33b55d 100644 --- a/src/Nest/DSL/Filter/HasChildFilterDescriptor.cs +++ b/src/Nest/DSL/Filter/HasChildFilterDescriptor.cs @@ -13,6 +13,12 @@ public interface IHasChildFilter : IFilter [JsonProperty("type")] TypeNameMarker Type { get; set; } + [JsonProperty("min_children")] + int? MinChildren { get; set; } + + [JsonProperty("max_children")] + int? MaxChildren { get; set; } + [JsonProperty("query")] IQueryContainer Query { get; set; } @@ -25,7 +31,7 @@ public interface IHasChildFilter : IFilter IInnerHits InnerHits { get; set; } } - + public class HasChildFilter : PlainFilter, IHasChildFilter { protected internal override void WrapInContainer(IFilterContainer container) @@ -34,6 +40,8 @@ protected internal override void WrapInContainer(IFilterContainer container) } public TypeNameMarker Type { get; set; } + public int? MinChildren { get; set; } + public int? MaxChildren { get; set; } public IQueryContainer Query { get; set; } public IFilterContainer Filter { get; set; } public IInnerHits InnerHits { get; set; } @@ -57,6 +65,10 @@ bool IFilter.IsConditionless TypeNameMarker IHasChildFilter.Type { get; set; } + int? IHasChildFilter.MinChildren { get; set; } + + int? IHasChildFilter.MaxChildren { get; set; } + IQueryContainer IHasChildFilter.Query { get; set; } IFilterContainer IHasChildFilter.Filter { get; set; } @@ -88,6 +100,18 @@ public HasChildFilterDescriptor Type(string type) return this; } + public HasChildFilterDescriptor MinChildren(int minChildren) + { + Self.MinChildren = minChildren; + return this; + } + + public HasChildFilterDescriptor MaxChildren(int maxChildren) + { + Self.MaxChildren = maxChildren; + return this; + } + public HasChildFilterDescriptor InnerHits() { Self.InnerHits = new InnerHits();