@@ -70,6 +70,12 @@ public sealed partial class KnnQuery
70
70
/// </summary>
71
71
[ JsonInclude , JsonPropertyName ( "query_vector_builder" ) ]
72
72
public Elastic . Clients . Elasticsearch . QueryVectorBuilder ? QueryVectorBuilder { get ; set ; }
73
+
74
+ /// <summary>
75
+ /// <para>The minimum similarity for a vector to be considered a match</para>
76
+ /// </summary>
77
+ [ JsonInclude , JsonPropertyName ( "similarity" ) ]
78
+ public float ? Similarity { get ; set ; }
73
79
}
74
80
75
81
public sealed partial class KnnQueryDescriptor < TDocument > : SerializableDescriptor < KnnQueryDescriptor < TDocument > >
@@ -92,6 +98,7 @@ public KnnQueryDescriptor() : base()
92
98
private Elastic . Clients . Elasticsearch . QueryVectorBuilder ? QueryVectorBuilderValue { get ; set ; }
93
99
private QueryVectorBuilderDescriptor QueryVectorBuilderDescriptor { get ; set ; }
94
100
private Action < QueryVectorBuilderDescriptor > QueryVectorBuilderDescriptorAction { get ; set ; }
101
+ private float ? SimilarityValue { get ; set ; }
95
102
96
103
/// <summary>
97
104
/// <para>Filters for the kNN search query</para>
@@ -213,6 +220,15 @@ public KnnQueryDescriptor<TDocument> QueryVectorBuilder(Action<QueryVectorBuilde
213
220
return Self ;
214
221
}
215
222
223
+ /// <summary>
224
+ /// <para>The minimum similarity for a vector to be considered a match</para>
225
+ /// </summary>
226
+ public KnnQueryDescriptor < TDocument > Similarity ( float ? similarity )
227
+ {
228
+ SimilarityValue = similarity ;
229
+ return Self ;
230
+ }
231
+
216
232
protected override void Serialize ( Utf8JsonWriter writer , JsonSerializerOptions options , IElasticsearchClientSettings settings )
217
233
{
218
234
writer . WriteStartObject ( ) ;
@@ -279,6 +295,12 @@ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions o
279
295
JsonSerializer . Serialize ( writer , QueryVectorBuilderValue , options ) ;
280
296
}
281
297
298
+ if ( SimilarityValue . HasValue )
299
+ {
300
+ writer . WritePropertyName ( "similarity" ) ;
301
+ writer . WriteNumberValue ( SimilarityValue . Value ) ;
302
+ }
303
+
282
304
writer . WriteEndObject ( ) ;
283
305
}
284
306
}
@@ -303,6 +325,7 @@ public KnnQueryDescriptor() : base()
303
325
private Elastic . Clients . Elasticsearch . QueryVectorBuilder ? QueryVectorBuilderValue { get ; set ; }
304
326
private QueryVectorBuilderDescriptor QueryVectorBuilderDescriptor { get ; set ; }
305
327
private Action < QueryVectorBuilderDescriptor > QueryVectorBuilderDescriptorAction { get ; set ; }
328
+ private float ? SimilarityValue { get ; set ; }
306
329
307
330
/// <summary>
308
331
/// <para>Filters for the kNN search query</para>
@@ -433,6 +456,15 @@ public KnnQueryDescriptor QueryVectorBuilder(Action<QueryVectorBuilderDescriptor
433
456
return Self ;
434
457
}
435
458
459
+ /// <summary>
460
+ /// <para>The minimum similarity for a vector to be considered a match</para>
461
+ /// </summary>
462
+ public KnnQueryDescriptor Similarity ( float ? similarity )
463
+ {
464
+ SimilarityValue = similarity ;
465
+ return Self ;
466
+ }
467
+
436
468
protected override void Serialize ( Utf8JsonWriter writer , JsonSerializerOptions options , IElasticsearchClientSettings settings )
437
469
{
438
470
writer . WriteStartObject ( ) ;
@@ -499,6 +531,12 @@ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions o
499
531
JsonSerializer . Serialize ( writer , QueryVectorBuilderValue , options ) ;
500
532
}
501
533
534
+ if ( SimilarityValue . HasValue )
535
+ {
536
+ writer . WritePropertyName ( "similarity" ) ;
537
+ writer . WriteNumberValue ( SimilarityValue . Value ) ;
538
+ }
539
+
502
540
writer . WriteEndObject ( ) ;
503
541
}
504
542
}
0 commit comments