@@ -72,6 +72,9 @@ public partial interface ISearchRequest : ICovariantSearchRequest
7272 [ JsonProperty ( "aggs" ) ]
7373 AggregationDictionary Aggregations { get ; set ; }
7474
75+ [ JsonProperty ( "slice" ) ]
76+ ISlicedScroll Slice { get ; set ; }
77+
7578 [ JsonProperty ( "query" ) ]
7679 QueryContainer Query { get ; set ; }
7780
@@ -114,6 +117,7 @@ public partial class SearchRequest
114117 public IList < object > SearchAfter { get ; set ; }
115118 public IDictionary < IndexName , double > IndicesBoost { get ; set ; }
116119 public QueryContainer PostFilter { get ; set ; }
120+ public ISlicedScroll Slice { get ; set ; }
117121 public QueryContainer Query { get ; set ; }
118122 public IList < IRescore > Rescore { get ; set ; }
119123 public ISuggestContainer Suggest { get ; set ; }
@@ -157,6 +161,7 @@ public partial class SearchRequest<T>
157161 public IList < object > SearchAfter { get ; set ; }
158162 public IDictionary < IndexName , double > IndicesBoost { get ; set ; }
159163 public QueryContainer PostFilter { get ; set ; }
164+ public ISlicedScroll Slice { get ; set ; }
160165 public QueryContainer Query { get ; set ; }
161166 public IList < IRescore > Rescore { get ; set ; }
162167 public ISuggestContainer Suggest { get ; set ; }
@@ -212,6 +217,7 @@ public partial class SearchDescriptor<T> where T : class
212217 ISuggestContainer ISearchRequest . Suggest { get ; set ; }
213218 IHighlight ISearchRequest . Highlight { get ; set ; }
214219 IList < IRescore > ISearchRequest . Rescore { get ; set ; }
220+ ISlicedScroll ISearchRequest . Slice { get ; set ; }
215221 QueryContainer ISearchRequest . Query { get ; set ; }
216222 QueryContainer ISearchRequest . PostFilter { get ; set ; }
217223 Fields ISearchRequest . StoredFields { get ; set ; }
@@ -398,6 +404,12 @@ public SearchDescriptor<T> Suggest(Func<SuggestContainerDescriptor<T>, IPromise<
398404 public SearchDescriptor < T > Query ( Func < QueryContainerDescriptor < T > , QueryContainer > query ) =>
399405 Assign ( a => a . Query = query ? . Invoke ( new QueryContainerDescriptor < T > ( ) ) ) ;
400406
407+ /// <summary>
408+ /// For scroll queries that return a lot of documents it is possible to split the scroll in multiple slices which can be consumed independently
409+ /// </summary>
410+ public SearchDescriptor < T > Slice ( Func < SlicedScrollDescriptor < T > , ISlicedScroll > query ) =>
411+ Assign ( a => a . Slice = query ? . Invoke ( new SlicedScrollDescriptor < T > ( ) ) ) ;
412+
401413 /// <summary>
402414 /// Shortcut to default to a match all query
403415 /// </summary>
0 commit comments