Skip to content

Commit 898a5b9

Browse files
authored
Add max_docs to ReindexOnServer API (#4071)
* Add max_docs and slice to ReindexOnServer,UpdateByQuery,DeleteByQuery APIs Relates: #4001 This commit - adds MaximumDocuments property to ReindexOnServer API and deprecates Size. - adds support for Slice and MaximumDocuments to UpdateByQuery and DeleteByQuery APIs
1 parent fffa867 commit 898a5b9

File tree

4 files changed

+82
-13
lines changed

4 files changed

+82
-13
lines changed

src/Nest/Document/Multiple/DeleteByQuery/DeleteByQueryRequest.cs

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@ public partial interface IDeleteByQueryRequest
2020
/// </summary>
2121
[DataMember(Name ="slice")]
2222
ISlicedScroll Slice { get; set; }
23+
24+
/// <summary>
25+
/// Limit the number of processed documents
26+
/// </summary>
27+
[DataMember(Name ="max_docs")]
28+
long? MaximumDocuments { get; set; }
2329
}
2430

2531
/// <inheritdoc />
@@ -34,6 +40,9 @@ public partial class DeleteByQueryRequest
3440

3541
/// <inheritdoc />
3642
public ISlicedScroll Slice { get; set; }
43+
44+
/// <inheritdoc />
45+
public long? MaximumDocuments { get; set; }
3746
}
3847

3948
/// <inheritdoc cref="IDeleteByQueryRequest" />
@@ -49,24 +58,24 @@ public partial class DeleteByQueryDescriptor<TDocument> : IDeleteByQueryRequest<
4958
{
5059
QueryContainer IDeleteByQueryRequest.Query { get; set; }
5160
ISlicedScroll IDeleteByQueryRequest.Slice { get; set; }
61+
long? IDeleteByQueryRequest.MaximumDocuments { get; set; }
5262

5363
/// <summary>
5464
/// A match_all query to select all documents. Convenient shorthand for specifying
5565
/// a match_all query using <see cref="Query" />
5666
/// </summary>
5767
public DeleteByQueryDescriptor<TDocument> MatchAll() => Assign(new QueryContainerDescriptor<TDocument>().MatchAll(), (a, v) => a.Query = v);
5868

59-
/// <summary>
60-
/// The query to use to select documents for deletion
61-
/// </summary>
69+
/// <inheritdoc cref="IDeleteByQueryRequest.Query"/>
6270
public DeleteByQueryDescriptor<TDocument> Query(Func<QueryContainerDescriptor<TDocument>, QueryContainer> querySelector) =>
6371
Assign(querySelector, (a, v) => a.Query = v?.Invoke(new QueryContainerDescriptor<TDocument>()));
6472

65-
/// <summary>
66-
/// Parallelize the deleting process. This parallelization can improve efficiency and
67-
/// provide a convenient way to break the request down into smaller parts.
68-
/// </summary>
73+
/// <inheritdoc cref="IDeleteByQueryRequest.Slice"/>
6974
public DeleteByQueryDescriptor<TDocument> Slice(Func<SlicedScrollDescriptor<TDocument>, ISlicedScroll> selector) =>
7075
Assign(selector, (a, v) => a.Slice = v?.Invoke(new SlicedScrollDescriptor<TDocument>()));
76+
77+
/// <inheritdoc cref="IDeleteByQueryRequest.MaximumDocuments"/>
78+
public DeleteByQueryDescriptor<TDocument> MaximumDocuments(long? maximumDocuments) =>
79+
Assign(maximumDocuments, (a, v) => a.MaximumDocuments = v);
7180
}
7281
}

src/Nest/Document/Multiple/ReindexOnServer/ReindexOnServerRequest.cs

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,17 @@ public partial interface IReindexOnServerRequest
3838
/// <summary>
3939
/// Limit the number of processed documents
4040
/// </summary>
41+
// TODO: Remove in 8.0
4142
[DataMember(Name ="size")]
43+
[Obsolete("Deprecated. Use MaximumDocuments")]
4244
long? Size { get; set; }
4345

46+
/// <summary>
47+
/// Limit the number of processed documents
48+
/// </summary>
49+
[DataMember(Name ="max_docs")]
50+
long? MaximumDocuments { get; set; }
51+
4452
/// <summary>
4553
/// The source for the reindex operation
4654
/// </summary>
@@ -51,19 +59,23 @@ public partial interface IReindexOnServerRequest
5159
/// <inheritdoc cref="IReindexOnServerRequest" />
5260
public partial class ReindexOnServerRequest
5361
{
54-
/// <inheritdoc cref="IReindexOnServerRequest.Conflicts" />
62+
/// <inheritdoc />
5563
public Conflicts? Conflicts { get; set; }
5664

57-
/// <inheritdoc cref="IReindexOnServerRequest.Destination" />
65+
/// <inheritdoc />
5866
public IReindexDestination Destination { get; set; }
5967

60-
/// <inheritdoc cref="IReindexOnServerRequest.Script" />
68+
/// <inheritdoc />
6169
public IScript Script { get; set; }
6270

63-
/// <inheritdoc cref="IReindexOnServerRequest.Size" />
71+
/// <inheritdoc />
72+
[Obsolete("Deprecated. Use MaximumDocuments")]
6473
public long? Size { get; set; }
6574

66-
/// <inheritdoc cref="IReindexOnServerRequest.Source" />
75+
/// <inheritdoc />
76+
public long? MaximumDocuments { get; set; }
77+
78+
/// <inheritdoc />
6779
public IReindexSource Source { get; set; }
6880
}
6981

@@ -72,8 +84,10 @@ public partial class ReindexOnServerDescriptor
7284
Conflicts? IReindexOnServerRequest.Conflicts { get; set; }
7385
IReindexDestination IReindexOnServerRequest.Destination { get; set; }
7486
IScript IReindexOnServerRequest.Script { get; set; }
87+
[Obsolete("Deprecated. Use MaximumDocuments")]
7588
long? IReindexOnServerRequest.Size { get; set; }
7689
IReindexSource IReindexOnServerRequest.Source { get; set; }
90+
long? IReindexOnServerRequest.MaximumDocuments { get; set; }
7791

7892
/// <inheritdoc cref="IReindexOnServerRequest.Source" />
7993
public ReindexOnServerDescriptor Source(Func<ReindexSourceDescriptor, IReindexSource> selector = null) =>
@@ -90,10 +104,15 @@ public ReindexOnServerDescriptor Destination(Func<ReindexDestinationDescriptor,
90104
public ReindexOnServerDescriptor Script(Func<ScriptDescriptor, IScript> scriptSelector) =>
91105
Assign(scriptSelector, (a, v) => a.Script = v?.Invoke(new ScriptDescriptor()));
92106

107+
[Obsolete("Deprecated. Use MaximumDocuments")]
93108
/// <inheritdoc cref="IReindexOnServerRequest.Size" />
94109
public ReindexOnServerDescriptor Size(long? size) => Assign(size, (a, v) => a.Size = v);
95110

96111
/// <inheritdoc cref="IReindexOnServerRequest.Conflicts" />
97112
public ReindexOnServerDescriptor Conflicts(Conflicts? conflicts) => Assign(conflicts, (a, v) => a.Conflicts = v);
113+
114+
/// <inheritdoc cref="IReindexOnServerRequest.MaximumDocuments"/>
115+
public ReindexOnServerDescriptor MaximumDocuments(long? maximumDocuments) =>
116+
Assign(maximumDocuments, (a, v) => a.MaximumDocuments = v);
98117
}
99118
}

src/Nest/Document/Multiple/ReindexOnServer/ReindexSource.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public interface IReindexSource
2828
IRemoteSource Remote { get; set; }
2929

3030
/// <summary>
31-
/// Limit the number of processed documents
31+
/// The batch size of documents
3232
/// </summary>
3333
[DataMember(Name ="size")]
3434
int? Size { get; set; }

src/Nest/Document/Multiple/UpdateByQuery/UpdateByQueryRequest.cs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,30 @@ namespace Nest
55
{
66
public partial interface IUpdateByQueryRequest
77
{
8+
/// <summary>
9+
/// Parallelize the update process by splitting a query into
10+
/// multiple slices.
11+
/// </summary>
12+
[DataMember(Name ="slice")]
13+
ISlicedScroll Slice { get; set; }
14+
15+
/// <summary>
16+
/// Query to select documents to update
17+
/// </summary>
818
[DataMember(Name ="query")]
919
QueryContainer Query { get; set; }
1020

21+
/// <summary>
22+
/// A script specifying the update to make
23+
/// </summary>
1124
[DataMember(Name ="script")]
1225
IScript Script { get; set; }
26+
27+
/// <summary>
28+
/// Limit the number of processed documents
29+
/// </summary>
30+
[DataMember(Name ="max_docs")]
31+
long? MaximumDocuments { get; set; }
1332
}
1433

1534
// ReSharper disable once UnusedMember.Global
@@ -18,8 +37,14 @@ public partial interface IUpdateByQueryRequest<TDocument> where TDocument : clas
1837

1938
public partial class UpdateByQueryRequest
2039
{
40+
/// <inheritdoc />
41+
public ISlicedScroll Slice { get; set; }
42+
/// <inheritdoc />
2143
public QueryContainer Query { get; set; }
44+
/// <inheritdoc />
2245
public IScript Script { get; set; }
46+
/// <inheritdoc />
47+
public long? MaximumDocuments { get; set; }
2348
}
2449

2550
// ReSharper disable once UnusedTypeParameter
@@ -32,15 +57,31 @@ public partial class UpdateByQueryDescriptor<TDocument>
3257
{
3358
QueryContainer IUpdateByQueryRequest.Query { get; set; }
3459
IScript IUpdateByQueryRequest.Script { get; set; }
60+
long? IUpdateByQueryRequest.MaximumDocuments { get; set; }
61+
ISlicedScroll IUpdateByQueryRequest.Slice { get; set; }
3562

63+
/// <summary>
64+
/// Query that selects all documents
65+
/// </summary>
3666
public UpdateByQueryDescriptor<TDocument> MatchAll() => Assign(new QueryContainerDescriptor<TDocument>().MatchAll(), (a, v) => a.Query = v);
3767

68+
/// <inheritdoc cref="IUpdateByQueryRequest.Query"/>
3869
public UpdateByQueryDescriptor<TDocument> Query(Func<QueryContainerDescriptor<TDocument>, QueryContainer> querySelector) =>
3970
Assign(querySelector, (a, v) => a.Query = v?.Invoke(new QueryContainerDescriptor<TDocument>()));
4071

72+
/// <inheritdoc cref="IUpdateByQueryRequest.Script"/>
4173
public UpdateByQueryDescriptor<TDocument> Script(string script) => Assign((InlineScript)script, (a, v) => a.Script = v);
4274

75+
/// <inheritdoc cref="IUpdateByQueryRequest.Script"/>
4376
public UpdateByQueryDescriptor<TDocument> Script(Func<ScriptDescriptor, IScript> scriptSelector) =>
4477
Assign(scriptSelector, (a, v) => a.Script = v?.Invoke(new ScriptDescriptor()));
78+
79+
/// <inheritdoc cref="IUpdateByQueryRequest.MaximumDocuments"/>
80+
public UpdateByQueryDescriptor<TDocument> MaximumDocuments(long? maximumDocuments) =>
81+
Assign(maximumDocuments, (a, v) => a.MaximumDocuments = v);
82+
83+
/// <inheritdoc cref="IUpdateByQueryRequest.Slice"/>
84+
public UpdateByQueryDescriptor<TDocument> Slice(Func<SlicedScrollDescriptor<TDocument>, ISlicedScroll> selector) =>
85+
Assign(selector, (a, v) => a.Slice = v?.Invoke(new SlicedScrollDescriptor<TDocument>()));
4586
}
4687
}

0 commit comments

Comments
 (0)