@@ -70,6 +70,12 @@ public sealed partial class KnnQuery
7070 /// </summary>
7171 [ JsonInclude , JsonPropertyName ( "query_vector_builder" ) ]
7272 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 ; }
7379}
7480
7581public sealed partial class KnnQueryDescriptor < TDocument > : SerializableDescriptor < KnnQueryDescriptor < TDocument > >
@@ -92,6 +98,7 @@ public KnnQueryDescriptor() : base()
9298 private Elastic . Clients . Elasticsearch . QueryVectorBuilder ? QueryVectorBuilderValue { get ; set ; }
9399 private QueryVectorBuilderDescriptor QueryVectorBuilderDescriptor { get ; set ; }
94100 private Action < QueryVectorBuilderDescriptor > QueryVectorBuilderDescriptorAction { get ; set ; }
101+ private float ? SimilarityValue { get ; set ; }
95102
96103 /// <summary>
97104 /// <para>Filters for the kNN search query</para>
@@ -213,6 +220,15 @@ public KnnQueryDescriptor<TDocument> QueryVectorBuilder(Action<QueryVectorBuilde
213220 return Self ;
214221 }
215222
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+
216232 protected override void Serialize ( Utf8JsonWriter writer , JsonSerializerOptions options , IElasticsearchClientSettings settings )
217233 {
218234 writer . WriteStartObject ( ) ;
@@ -279,6 +295,12 @@ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions o
279295 JsonSerializer . Serialize ( writer , QueryVectorBuilderValue , options ) ;
280296 }
281297
298+ if ( SimilarityValue . HasValue )
299+ {
300+ writer . WritePropertyName ( "similarity" ) ;
301+ writer . WriteNumberValue ( SimilarityValue . Value ) ;
302+ }
303+
282304 writer . WriteEndObject ( ) ;
283305 }
284306}
@@ -303,6 +325,7 @@ public KnnQueryDescriptor() : base()
303325 private Elastic . Clients . Elasticsearch . QueryVectorBuilder ? QueryVectorBuilderValue { get ; set ; }
304326 private QueryVectorBuilderDescriptor QueryVectorBuilderDescriptor { get ; set ; }
305327 private Action < QueryVectorBuilderDescriptor > QueryVectorBuilderDescriptorAction { get ; set ; }
328+ private float ? SimilarityValue { get ; set ; }
306329
307330 /// <summary>
308331 /// <para>Filters for the kNN search query</para>
@@ -433,6 +456,15 @@ public KnnQueryDescriptor QueryVectorBuilder(Action<QueryVectorBuilderDescriptor
433456 return Self ;
434457 }
435458
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+
436468 protected override void Serialize ( Utf8JsonWriter writer , JsonSerializerOptions options , IElasticsearchClientSettings settings )
437469 {
438470 writer . WriteStartObject ( ) ;
@@ -499,6 +531,12 @@ protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions o
499531 JsonSerializer . Serialize ( writer , QueryVectorBuilderValue , options ) ;
500532 }
501533
534+ if ( SimilarityValue . HasValue )
535+ {
536+ writer . WritePropertyName ( "similarity" ) ;
537+ writer . WriteNumberValue ( SimilarityValue . Value ) ;
538+ }
539+
502540 writer . WriteEndObject ( ) ;
503541 }
504542}
0 commit comments