Skip to content

Commit 946db96

Browse files
Fix MultiSearch functionality (#8176) (#8178)
- Implement `IStreamSerializable` for array request descriptors - Do not automatically infer index for optional `Indices` parameters Co-authored-by: Florian Bernd <[email protected]>
1 parent 01b0bfe commit 946db96

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+225
-286
lines changed

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/AsyncSearch/SubmitAsyncSearchRequest.g.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -958,7 +958,7 @@ public SubmitAsyncSearchRequestDescriptor(Elastic.Clients.Elasticsearch.Serverle
958958
{
959959
}
960960

961-
public SubmitAsyncSearchRequestDescriptor() : this(typeof(TDocument))
961+
public SubmitAsyncSearchRequestDescriptor()
962962
{
963963
}
964964

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/Cluster/HealthRequest.g.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ public HealthRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Indices?
186186
{
187187
}
188188

189-
public HealthRequestDescriptor() : this(typeof(TDocument))
189+
public HealthRequestDescriptor()
190190
{
191191
}
192192

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/CountRequest.g.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ public CountRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Indices?
225225
{
226226
}
227227

228-
public CountRequestDescriptor() : this(typeof(TDocument))
228+
public CountRequestDescriptor()
229229
{
230230
}
231231

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/FieldCapsRequest.g.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ public FieldCapsRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Indic
161161
{
162162
}
163163

164-
public FieldCapsRequestDescriptor() : this(typeof(TDocument))
164+
public FieldCapsRequestDescriptor()
165165
{
166166
}
167167

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/IndexManagement/ClearCacheRequest.g.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ public ClearCacheRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Indi
142142
{
143143
}
144144

145-
public ClearCacheRequestDescriptor() : this(typeof(TDocument))
145+
public ClearCacheRequestDescriptor()
146146
{
147147
}
148148

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/IndexManagement/ExistsAliasRequest.g.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public ExistsAliasRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Ind
109109
{
110110
}
111111

112-
public ExistsAliasRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Names name) : this(typeof(TDocument), name)
112+
public ExistsAliasRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Names name) : base(r => r.Required("name", name))
113113
{
114114
}
115115

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/IndexManagement/FlushRequest.g.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ public FlushRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Indices?
120120
{
121121
}
122122

123-
public FlushRequestDescriptor() : this(typeof(TDocument))
123+
public FlushRequestDescriptor()
124124
{
125125
}
126126

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/IndexManagement/ForcemergeRequest.g.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ public ForcemergeRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Indi
142142
{
143143
}
144144

145-
public ForcemergeRequestDescriptor() : this(typeof(TDocument))
145+
public ForcemergeRequestDescriptor()
146146
{
147147
}
148148

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/IndexManagement/GetAliasRequest.g.cs

-4
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,6 @@ public GetAliasRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Indice
117117
{
118118
}
119119

120-
public GetAliasRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Names? name) : this(typeof(TDocument), name)
121-
{
122-
}
123-
124120
public GetAliasRequestDescriptor()
125121
{
126122
}

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/IndexManagement/GetIndicesSettingsRequest.g.cs

-4
Original file line numberDiff line numberDiff line change
@@ -150,10 +150,6 @@ public GetIndicesSettingsRequestDescriptor(Elastic.Clients.Elasticsearch.Serverl
150150
{
151151
}
152152

153-
public GetIndicesSettingsRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Names? name) : this(typeof(TDocument), name)
154-
{
155-
}
156-
157153
public GetIndicesSettingsRequestDescriptor()
158154
{
159155
}

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/IndexManagement/GetMappingRequest.g.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ public GetMappingRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Indi
120120
{
121121
}
122122

123-
public GetMappingRequestDescriptor() : this(typeof(TDocument))
123+
public GetMappingRequestDescriptor()
124124
{
125125
}
126126

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/IndexManagement/IndicesStatsRequest.g.cs

-4
Original file line numberDiff line numberDiff line change
@@ -172,10 +172,6 @@ public IndicesStatsRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.In
172172
{
173173
}
174174

175-
public IndicesStatsRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Metrics? metric) : this(typeof(TDocument), metric)
176-
{
177-
}
178-
179175
public IndicesStatsRequestDescriptor()
180176
{
181177
}

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/IndexManagement/RecoveryRequest.g.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public RecoveryRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Indice
8787
{
8888
}
8989

90-
public RecoveryRequestDescriptor() : this(typeof(TDocument))
90+
public RecoveryRequestDescriptor()
9191
{
9292
}
9393

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/IndexManagement/RefreshRequest.g.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public RefreshRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Indices
9898
{
9999
}
100100

101-
public RefreshRequestDescriptor() : this(typeof(TDocument))
101+
public RefreshRequestDescriptor()
102102
{
103103
}
104104

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/IndexManagement/SegmentsRequest.g.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public SegmentsRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Indice
109109
{
110110
}
111111

112-
public SegmentsRequestDescriptor() : this(typeof(TDocument))
112+
public SegmentsRequestDescriptor()
113113
{
114114
}
115115

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/IndexManagement/ValidateQueryRequest.g.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ public ValidateQueryRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.I
203203
{
204204
}
205205

206-
public ValidateQueryRequestDescriptor() : this(typeof(TDocument))
206+
public ValidateQueryRequestDescriptor()
207207
{
208208
}
209209

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/MultiSearchRequest.g.cs

+47-3
Original file line numberDiff line numberDiff line change
@@ -214,15 +214,15 @@ async Task IStreamSerializable.SerializeAsync(Stream stream, IElasticsearchClien
214214
/// <summary>
215215
/// <para>Allows to execute several search operations in one request.</para>
216216
/// </summary>
217-
public sealed partial class MultiSearchRequestDescriptor<TDocument> : RequestDescriptor<MultiSearchRequestDescriptor<TDocument>, MultiSearchRequestParameters>
217+
public sealed partial class MultiSearchRequestDescriptor<TDocument> : RequestDescriptor<MultiSearchRequestDescriptor<TDocument>, MultiSearchRequestParameters>, IStreamSerializable
218218
{
219219
internal MultiSearchRequestDescriptor(Action<MultiSearchRequestDescriptor<TDocument>> configure) => configure.Invoke(this);
220220

221221
public MultiSearchRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Indices? indices) : base(r => r.Optional("index", indices))
222222
{
223223
}
224224

225-
public MultiSearchRequestDescriptor() : this(typeof(TDocument))
225+
public MultiSearchRequestDescriptor()
226226
{
227227
}
228228

@@ -259,6 +259,28 @@ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions o
259259

260260
List<Elastic.Clients.Elasticsearch.Serverless.Core.MSearch.SearchRequestItem> _items = new();
261261

262+
void IStreamSerializable.Serialize(Stream stream, IElasticsearchClientSettings settings, SerializationFormatting formatting)
263+
{
264+
if (_items is null)
265+
return;
266+
foreach (var item in _items)
267+
{
268+
if (item is IStreamSerializable serializable)
269+
serializable.Serialize(stream, settings, formatting);
270+
}
271+
}
272+
273+
async Task IStreamSerializable.SerializeAsync(Stream stream, IElasticsearchClientSettings settings, SerializationFormatting formatting)
274+
{
275+
if (_items is null)
276+
return;
277+
foreach (var item in _items)
278+
{
279+
if (item is IStreamSerializable serializable)
280+
await serializable.SerializeAsync(stream, settings, formatting).ConfigureAwait(false);
281+
}
282+
}
283+
262284
public MultiSearchRequestDescriptor<TDocument> AddSearches(Elastic.Clients.Elasticsearch.Serverless.Core.MSearch.SearchRequestItem searches)
263285
{
264286
_items.Add(searches);
@@ -269,7 +291,7 @@ public MultiSearchRequestDescriptor<TDocument> AddSearches(Elastic.Clients.Elast
269291
/// <summary>
270292
/// <para>Allows to execute several search operations in one request.</para>
271293
/// </summary>
272-
public sealed partial class MultiSearchRequestDescriptor : RequestDescriptor<MultiSearchRequestDescriptor, MultiSearchRequestParameters>
294+
public sealed partial class MultiSearchRequestDescriptor : RequestDescriptor<MultiSearchRequestDescriptor, MultiSearchRequestParameters>, IStreamSerializable
273295
{
274296
internal MultiSearchRequestDescriptor(Action<MultiSearchRequestDescriptor> configure) => configure.Invoke(this);
275297

@@ -314,6 +336,28 @@ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions o
314336

315337
List<Elastic.Clients.Elasticsearch.Serverless.Core.MSearch.SearchRequestItem> _items = new();
316338

339+
void IStreamSerializable.Serialize(Stream stream, IElasticsearchClientSettings settings, SerializationFormatting formatting)
340+
{
341+
if (_items is null)
342+
return;
343+
foreach (var item in _items)
344+
{
345+
if (item is IStreamSerializable serializable)
346+
serializable.Serialize(stream, settings, formatting);
347+
}
348+
}
349+
350+
async Task IStreamSerializable.SerializeAsync(Stream stream, IElasticsearchClientSettings settings, SerializationFormatting formatting)
351+
{
352+
if (_items is null)
353+
return;
354+
foreach (var item in _items)
355+
{
356+
if (item is IStreamSerializable serializable)
357+
await serializable.SerializeAsync(stream, settings, formatting).ConfigureAwait(false);
358+
}
359+
}
360+
317361
public MultiSearchRequestDescriptor AddSearches(Elastic.Clients.Elasticsearch.Serverless.Core.MSearch.SearchRequestItem searches)
318362
{
319363
_items.Add(searches);

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/MultiSearchTemplateRequest.g.cs

+47-3
Original file line numberDiff line numberDiff line change
@@ -137,15 +137,15 @@ async Task IStreamSerializable.SerializeAsync(Stream stream, IElasticsearchClien
137137
/// <summary>
138138
/// <para>Runs multiple templated searches with a single request.</para>
139139
/// </summary>
140-
public sealed partial class MultiSearchTemplateRequestDescriptor<TDocument> : RequestDescriptor<MultiSearchTemplateRequestDescriptor<TDocument>, MultiSearchTemplateRequestParameters>
140+
public sealed partial class MultiSearchTemplateRequestDescriptor<TDocument> : RequestDescriptor<MultiSearchTemplateRequestDescriptor<TDocument>, MultiSearchTemplateRequestParameters>, IStreamSerializable
141141
{
142142
internal MultiSearchTemplateRequestDescriptor(Action<MultiSearchTemplateRequestDescriptor<TDocument>> configure) => configure.Invoke(this);
143143

144144
public MultiSearchTemplateRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Indices? indices) : base(r => r.Optional("index", indices))
145145
{
146146
}
147147

148-
public MultiSearchTemplateRequestDescriptor() : this(typeof(TDocument))
148+
public MultiSearchTemplateRequestDescriptor()
149149
{
150150
}
151151

@@ -175,6 +175,28 @@ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions o
175175

176176
List<Elastic.Clients.Elasticsearch.Serverless.Core.MSearchTemplate.SearchTemplateRequestItem> _items = new();
177177

178+
void IStreamSerializable.Serialize(Stream stream, IElasticsearchClientSettings settings, SerializationFormatting formatting)
179+
{
180+
if (_items is null)
181+
return;
182+
foreach (var item in _items)
183+
{
184+
if (item is IStreamSerializable serializable)
185+
serializable.Serialize(stream, settings, formatting);
186+
}
187+
}
188+
189+
async Task IStreamSerializable.SerializeAsync(Stream stream, IElasticsearchClientSettings settings, SerializationFormatting formatting)
190+
{
191+
if (_items is null)
192+
return;
193+
foreach (var item in _items)
194+
{
195+
if (item is IStreamSerializable serializable)
196+
await serializable.SerializeAsync(stream, settings, formatting).ConfigureAwait(false);
197+
}
198+
}
199+
178200
public MultiSearchTemplateRequestDescriptor<TDocument> AddSearchTemplates(Elastic.Clients.Elasticsearch.Serverless.Core.MSearchTemplate.SearchTemplateRequestItem searchTemplates)
179201
{
180202
_items.Add(searchTemplates);
@@ -185,7 +207,7 @@ public MultiSearchTemplateRequestDescriptor<TDocument> AddSearchTemplates(Elasti
185207
/// <summary>
186208
/// <para>Runs multiple templated searches with a single request.</para>
187209
/// </summary>
188-
public sealed partial class MultiSearchTemplateRequestDescriptor : RequestDescriptor<MultiSearchTemplateRequestDescriptor, MultiSearchTemplateRequestParameters>
210+
public sealed partial class MultiSearchTemplateRequestDescriptor : RequestDescriptor<MultiSearchTemplateRequestDescriptor, MultiSearchTemplateRequestParameters>, IStreamSerializable
189211
{
190212
internal MultiSearchTemplateRequestDescriptor(Action<MultiSearchTemplateRequestDescriptor> configure) => configure.Invoke(this);
191213

@@ -223,6 +245,28 @@ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions o
223245

224246
List<Elastic.Clients.Elasticsearch.Serverless.Core.MSearchTemplate.SearchTemplateRequestItem> _items = new();
225247

248+
void IStreamSerializable.Serialize(Stream stream, IElasticsearchClientSettings settings, SerializationFormatting formatting)
249+
{
250+
if (_items is null)
251+
return;
252+
foreach (var item in _items)
253+
{
254+
if (item is IStreamSerializable serializable)
255+
serializable.Serialize(stream, settings, formatting);
256+
}
257+
}
258+
259+
async Task IStreamSerializable.SerializeAsync(Stream stream, IElasticsearchClientSettings settings, SerializationFormatting formatting)
260+
{
261+
if (_items is null)
262+
return;
263+
foreach (var item in _items)
264+
{
265+
if (item is IStreamSerializable serializable)
266+
await serializable.SerializeAsync(stream, settings, formatting).ConfigureAwait(false);
267+
}
268+
}
269+
226270
public MultiSearchTemplateRequestDescriptor AddSearchTemplates(Elastic.Clients.Elasticsearch.Serverless.Core.MSearchTemplate.SearchTemplateRequestItem searchTemplates)
227271
{
228272
_items.Add(searchTemplates);

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/RankEvalRequest.g.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ public RankEvalRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Indice
121121
{
122122
}
123123

124-
public RankEvalRequestDescriptor() : this(typeof(TDocument))
124+
public RankEvalRequestDescriptor()
125125
{
126126
}
127127

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/SearchRequest.g.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1007,7 +1007,7 @@ public SearchRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.Indices?
10071007
{
10081008
}
10091009

1010-
public SearchRequestDescriptor() : this(typeof(TDocument))
1010+
public SearchRequestDescriptor()
10111011
{
10121012
}
10131013

Diff for: src/Elastic.Clients.Elasticsearch.Serverless/_Generated/Api/SearchTemplateRequest.g.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ public SearchTemplateRequestDescriptor(Elastic.Clients.Elasticsearch.Serverless.
216216
{
217217
}
218218

219-
public SearchTemplateRequestDescriptor() : this(typeof(TDocument))
219+
public SearchTemplateRequestDescriptor()
220220
{
221221
}
222222

0 commit comments

Comments
 (0)