2020package co .elastic .clients .elasticsearch ._types ;
2121
2222import co .elastic .clients .elasticsearch ._types .query_dsl .Query ;
23+ import co .elastic .clients .elasticsearch ._types .query_dsl .QueryBase ;
2324import co .elastic .clients .elasticsearch ._types .query_dsl .QueryVariant ;
24- import co .elastic .clients .elasticsearch .core .search .InnerHits ;
2525import co .elastic .clients .json .JsonpDeserializable ;
2626import co .elastic .clients .json .JsonpDeserializer ;
2727import co .elastic .clients .json .JsonpMapper ;
28- import co .elastic .clients .json .JsonpSerializable ;
29- import co .elastic .clients .json .JsonpUtils ;
3028import co .elastic .clients .json .ObjectBuilderDeserializer ;
3129import co .elastic .clients .json .ObjectDeserializer ;
3230import co .elastic .clients .util .ApiTypeHelper ;
3331import co .elastic .clients .util .ObjectBuilder ;
34- import co .elastic .clients .util .WithJsonObjectBuilderBase ;
3532import jakarta .json .stream .JsonGenerator ;
3633import java .lang .Float ;
3734import java .lang .Long ;
6461 * specification</a>
6562 */
6663@ JsonpDeserializable
67- public class KnnQuery implements QueryVariant , JsonpSerializable {
64+ public class KnnQuery extends QueryBase implements QueryVariant {
6865 private final String field ;
6966
7067 private final List <Float > queryVector ;
7168
7269 @ Nullable
7370 private final QueryVectorBuilder queryVectorBuilder ;
7471
75- private final long k ;
76-
77- private final long numCandidates ;
78-
7972 @ Nullable
80- private final Float boost ;
73+ private final Long numCandidates ;
8174
8275 private final List <Query > filter ;
8376
8477 @ Nullable
8578 private final Float similarity ;
8679
87- @ Nullable
88- private final InnerHits innerHits ;
89-
9080 // ---------------------------------------------------------------------------------------------
9181
9282 private KnnQuery (Builder builder ) {
83+ super (builder );
9384
9485 this .field = ApiTypeHelper .requireNonNull (builder .field , this , "field" );
9586 this .queryVector = ApiTypeHelper .unmodifiable (builder .queryVector );
9687 this .queryVectorBuilder = builder .queryVectorBuilder ;
97- this .k = ApiTypeHelper .requireNonNull (builder .k , this , "k" );
98- this .numCandidates = ApiTypeHelper .requireNonNull (builder .numCandidates , this , "numCandidates" );
99- this .boost = builder .boost ;
88+ this .numCandidates = builder .numCandidates ;
10089 this .filter = ApiTypeHelper .unmodifiable (builder .filter );
10190 this .similarity = builder .similarity ;
102- this .innerHits = builder .innerHits ;
10391
10492 }
10593
@@ -145,31 +133,13 @@ public final QueryVectorBuilder queryVectorBuilder() {
145133 }
146134
147135 /**
148- * Required - The final number of nearest neighbors to return as top hits
149- * <p>
150- * API name: {@code k}
151- */
152- public final long k () {
153- return this .k ;
154- }
155-
156- /**
157- * Required - The number of nearest neighbor candidates to consider per shard
136+ * The number of nearest neighbor candidates to consider per shard
158137 * <p>
159138 * API name: {@code num_candidates}
160139 */
161- public final long numCandidates () {
162- return this .numCandidates ;
163- }
164-
165- /**
166- * Boost value to apply to kNN scores
167- * <p>
168- * API name: {@code boost}
169- */
170140 @ Nullable
171- public final Float boost () {
172- return this .boost ;
141+ public final Long numCandidates () {
142+ return this .numCandidates ;
173143 }
174144
175145 /**
@@ -191,27 +161,9 @@ public final Float similarity() {
191161 return this .similarity ;
192162 }
193163
194- /**
195- * If defined, each search hit will contain inner hits.
196- * <p>
197- * API name: {@code inner_hits}
198- */
199- @ Nullable
200- public final InnerHits innerHits () {
201- return this .innerHits ;
202- }
203-
204- /**
205- * Serialize this object to JSON.
206- */
207- public void serialize (JsonGenerator generator , JsonpMapper mapper ) {
208- generator .writeStartObject ();
209- serializeInternal (generator , mapper );
210- generator .writeEnd ();
211- }
212-
213164 protected void serializeInternal (JsonGenerator generator , JsonpMapper mapper ) {
214165
166+ super .serializeInternal (generator , mapper );
215167 generator .writeKey ("field" );
216168 generator .write (this .field );
217169
@@ -230,15 +182,9 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
230182 this .queryVectorBuilder .serialize (generator , mapper );
231183
232184 }
233- generator .writeKey ("k" );
234- generator .write (this .k );
235-
236- generator .writeKey ("num_candidates" );
237- generator .write (this .numCandidates );
238-
239- if (this .boost != null ) {
240- generator .writeKey ("boost" );
241- generator .write (this .boost );
185+ if (this .numCandidates != null ) {
186+ generator .writeKey ("num_candidates" );
187+ generator .write (this .numCandidates );
242188
243189 }
244190 if (ApiTypeHelper .isDefined (this .filter )) {
@@ -256,26 +202,16 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
256202 generator .write (this .similarity );
257203
258204 }
259- if (this .innerHits != null ) {
260- generator .writeKey ("inner_hits" );
261- this .innerHits .serialize (generator , mapper );
262-
263- }
264205
265206 }
266207
267- @ Override
268- public String toString () {
269- return JsonpUtils .toString (this );
270- }
271-
272208 // ---------------------------------------------------------------------------------------------
273209
274210 /**
275211 * Builder for {@link KnnQuery}.
276212 */
277213
278- public static class Builder extends WithJsonObjectBuilderBase <Builder > implements ObjectBuilder <KnnQuery > {
214+ public static class Builder extends QueryBase . AbstractBuilder <Builder > implements ObjectBuilder <KnnQuery > {
279215 private String field ;
280216
281217 @ Nullable
@@ -284,22 +220,15 @@ public static class Builder extends WithJsonObjectBuilderBase<Builder> implement
284220 @ Nullable
285221 private QueryVectorBuilder queryVectorBuilder ;
286222
287- private Long k ;
288-
289- private Long numCandidates ;
290-
291223 @ Nullable
292- private Float boost ;
224+ private Long numCandidates ;
293225
294226 @ Nullable
295227 private List <Query > filter ;
296228
297229 @ Nullable
298230 private Float similarity ;
299231
300- @ Nullable
301- private InnerHits innerHits ;
302-
303232 /**
304233 * Required - The name of the vector field to search against
305234 * <p>
@@ -357,35 +286,15 @@ public final Builder queryVectorBuilder(
357286 }
358287
359288 /**
360- * Required - The final number of nearest neighbors to return as top hits
361- * <p>
362- * API name: {@code k}
363- */
364- public final Builder k (long value ) {
365- this .k = value ;
366- return this ;
367- }
368-
369- /**
370- * Required - The number of nearest neighbor candidates to consider per shard
289+ * The number of nearest neighbor candidates to consider per shard
371290 * <p>
372291 * API name: {@code num_candidates}
373292 */
374- public final Builder numCandidates (long value ) {
293+ public final Builder numCandidates (@ Nullable Long value ) {
375294 this .numCandidates = value ;
376295 return this ;
377296 }
378297
379- /**
380- * Boost value to apply to kNN scores
381- * <p>
382- * API name: {@code boost}
383- */
384- public final Builder boost (@ Nullable Float value ) {
385- this .boost = value ;
386- return this ;
387- }
388-
389298 /**
390299 * Filters for the kNN search query
391300 * <p>
@@ -431,25 +340,6 @@ public final Builder similarity(@Nullable Float value) {
431340 return this ;
432341 }
433342
434- /**
435- * If defined, each search hit will contain inner hits.
436- * <p>
437- * API name: {@code inner_hits}
438- */
439- public final Builder innerHits (@ Nullable InnerHits value ) {
440- this .innerHits = value ;
441- return this ;
442- }
443-
444- /**
445- * If defined, each search hit will contain inner hits.
446- * <p>
447- * API name: {@code inner_hits}
448- */
449- public final Builder innerHits (Function <InnerHits .Builder , ObjectBuilder <InnerHits >> fn ) {
450- return this .innerHits (fn .apply (new InnerHits .Builder ()).build ());
451- }
452-
453343 @ Override
454344 protected Builder self () {
455345 return this ;
@@ -477,17 +367,14 @@ public KnnQuery build() {
477367 KnnQuery ::setupKnnQueryDeserializer );
478368
479369 protected static void setupKnnQueryDeserializer (ObjectDeserializer <KnnQuery .Builder > op ) {
480-
370+ QueryBase . setupQueryBaseDeserializer ( op );
481371 op .add (Builder ::field , JsonpDeserializer .stringDeserializer (), "field" );
482372 op .add (Builder ::queryVector , JsonpDeserializer .arrayDeserializer (JsonpDeserializer .floatDeserializer ()),
483373 "query_vector" );
484374 op .add (Builder ::queryVectorBuilder , QueryVectorBuilder ._DESERIALIZER , "query_vector_builder" );
485- op .add (Builder ::k , JsonpDeserializer .longDeserializer (), "k" );
486375 op .add (Builder ::numCandidates , JsonpDeserializer .longDeserializer (), "num_candidates" );
487- op .add (Builder ::boost , JsonpDeserializer .floatDeserializer (), "boost" );
488376 op .add (Builder ::filter , JsonpDeserializer .arrayDeserializer (Query ._DESERIALIZER ), "filter" );
489377 op .add (Builder ::similarity , JsonpDeserializer .floatDeserializer (), "similarity" );
490- op .add (Builder ::innerHits , InnerHits ._DESERIALIZER , "inner_hits" );
491378
492379 }
493380
0 commit comments