@@ -26,7 +26,12 @@ public class NeuralQuery extends QueryBase implements QueryVariant {
26
26
private final String field ;
27
27
private final String queryText ;
28
28
private final String queryImage ;
29
- private final int k ;
29
+ @ Nullable
30
+ private final Integer k ;
31
+ @ Nullable
32
+ private final Float minScore ;
33
+ @ Nullable
34
+ private final Float maxDistance ;
30
35
@ Nullable
31
36
private final String modelId ;
32
37
@ Nullable
@@ -41,7 +46,9 @@ private NeuralQuery(NeuralQuery.Builder builder) {
41
46
}
42
47
this .queryText = builder .queryText ;
43
48
this .queryImage = builder .queryImage ;
44
- this .k = ApiTypeHelper .requireNonNull (builder .k , this , "k" );
49
+ this .k = builder .k ;
50
+ this .minScore = builder .minScore ;
51
+ this .maxDistance = builder .maxDistance ;
45
52
this .modelId = builder .modelId ;
46
53
this .filter = builder .filter ;
47
54
}
@@ -90,17 +97,34 @@ public final String queryImage() {
90
97
}
91
98
92
99
/**
93
- * Required - The number of neighbors to return.
100
+ * Optional - The number of neighbors to return.
94
101
*
95
102
* @return The number of neighbors to return.
96
103
*/
97
- public final int k () {
104
+ @ Nullable
105
+ public final Integer k () {
98
106
return this .k ;
99
107
}
100
108
101
109
/**
102
- * Builder for {@link NeuralQuery}.
110
+ * Optional - The minimum score threshold for the search results
111
+ *
112
+ * @return The minimum score threshold for the search results
113
+ */
114
+ @ Nullable
115
+ public final Float minScore () {
116
+ return this .minScore ;
117
+ }
118
+
119
+ /**
120
+ * Optional - The maximum distance threshold for the search results
121
+ *
122
+ * @return The maximum distance threshold for the search results
103
123
*/
124
+ @ Nullable
125
+ public final Float maxDistance () {
126
+ return this .maxDistance ;
127
+ }
104
128
105
129
/**
106
130
* Optional - The model_id field if the default model for the index or field is set.
@@ -141,7 +165,17 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
141
165
generator .write ("model_id" , this .modelId );
142
166
}
143
167
144
- generator .write ("k" , this .k );
168
+ if (this .k != null ) {
169
+ generator .write ("k" , this .k );
170
+ }
171
+
172
+ if (this .minScore != null ) {
173
+ generator .write ("min_score" , this .minScore );
174
+ }
175
+
176
+ if (this .maxDistance != null ) {
177
+ generator .write ("max_distance" , this .maxDistance );
178
+ }
145
179
146
180
if (this .filter != null ) {
147
181
generator .writeKey ("filter" );
@@ -152,7 +186,14 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
152
186
}
153
187
154
188
public Builder toBuilder () {
155
- return toBuilder (new Builder ()).field (field ).queryText (queryText ).queryImage (queryImage ).k (k ).modelId (modelId ).filter (filter );
189
+ return toBuilder (new Builder ()).field (field )
190
+ .queryText (queryText )
191
+ .queryImage (queryImage )
192
+ .k (k )
193
+ .minScore (minScore )
194
+ .maxDistance (maxDistance )
195
+ .modelId (modelId )
196
+ .filter (filter );
156
197
}
157
198
158
199
/**
@@ -162,8 +203,13 @@ public static class Builder extends QueryBase.AbstractBuilder<NeuralQuery.Builde
162
203
private String field ;
163
204
private String queryText ;
164
205
private String queryImage ;
206
+ @ Nullable
165
207
private Integer k ;
166
208
@ Nullable
209
+ private Float minScore ;
210
+ @ Nullable
211
+ private Float maxDistance ;
212
+ @ Nullable
167
213
private String modelId ;
168
214
@ Nullable
169
215
private Query filter ;
@@ -216,7 +262,7 @@ public NeuralQuery.Builder modelId(@Nullable String modelId) {
216
262
}
217
263
218
264
/**
219
- * Required - The number of neighbors to return.
265
+ * Optional - The number of neighbors to return.
220
266
*
221
267
* @param k The number of neighbors to return.
222
268
* @return This builder.
@@ -226,6 +272,28 @@ public NeuralQuery.Builder k(@Nullable Integer k) {
226
272
return this ;
227
273
}
228
274
275
+ /**
276
+ * Optional - The minimum score threshold for the search results
277
+ *
278
+ * @param minScore The minimum score threshold for the search results
279
+ * @return This builder.
280
+ */
281
+ public NeuralQuery .Builder minScore (@ Nullable Float minScore ) {
282
+ this .minScore = minScore ;
283
+ return this ;
284
+ }
285
+
286
+ /**
287
+ * Optional - The maximum distance threshold for the search results
288
+ *
289
+ * @param maxDistance The maximum distance threshold for the search results
290
+ * @return This builder.
291
+ */
292
+ public NeuralQuery .Builder maxDistance (@ Nullable Float maxDistance ) {
293
+ this .maxDistance = maxDistance ;
294
+ return this ;
295
+ }
296
+
229
297
/**
230
298
* Optional - A query to filter the results of the knn query.
231
299
*
@@ -267,6 +335,8 @@ protected static void setupNeuralQueryDeserializer(ObjectDeserializer<NeuralQuer
267
335
op .add (NeuralQuery .Builder ::queryImage , JsonpDeserializer .stringDeserializer (), "query_image" );
268
336
op .add (NeuralQuery .Builder ::modelId , JsonpDeserializer .stringDeserializer (), "model_id" );
269
337
op .add (NeuralQuery .Builder ::k , JsonpDeserializer .integerDeserializer (), "k" );
338
+ op .add (NeuralQuery .Builder ::minScore , JsonpDeserializer .floatDeserializer (), "min_score" );
339
+ op .add (NeuralQuery .Builder ::maxDistance , JsonpDeserializer .floatDeserializer (), "max_distance" );
270
340
op .add (NeuralQuery .Builder ::filter , Query ._DESERIALIZER , "filter" );
271
341
272
342
op .setKey (NeuralQuery .Builder ::field , JsonpDeserializer .stringDeserializer ());
0 commit comments