@@ -45,6 +45,8 @@ def __init__(self, nested_query) -> None:
4545 self ._query_vector : Optional [Vector ] = None
4646 self ._limit : Optional [int ] = None
4747 self ._distance_measure : Optional [DistanceMeasure ] = None
48+ self ._distance_result_field : Optional [str ] = None
49+ self ._distance_threshold : Optional [float ] = None
4850
4951 @property
5052 def _client (self ):
@@ -69,6 +71,11 @@ def _to_protobuf(self) -> query.StructuredQuery:
6971 else :
7072 raise ValueError ("Invalid distance_measure" )
7173
74+ # Coerce ints to floats as required by the protobuf.
75+ distance_threshold_proto = None
76+ if self ._distance_threshold is not None :
77+ distance_threshold_proto = float (self ._distance_threshold )
78+
7279 pb = self ._nested_query ._to_protobuf ()
7380 pb .find_nearest = query .StructuredQuery .FindNearest (
7481 vector_field = query .StructuredQuery .FieldReference (
@@ -77,6 +84,8 @@ def _to_protobuf(self) -> query.StructuredQuery:
7784 query_vector = _helpers .encode_value (self ._query_vector ),
7885 distance_measure = distance_measure_proto ,
7986 limit = self ._limit ,
87+ distance_result_field = self ._distance_result_field ,
88+ distance_threshold = distance_threshold_proto ,
8089 )
8190 return pb
8291
@@ -111,12 +120,17 @@ def find_nearest(
111120 query_vector : Vector ,
112121 limit : int ,
113122 distance_measure : DistanceMeasure ,
123+ * ,
124+ distance_result_field : Optional [str ] = None ,
125+ distance_threshold : Optional [float ] = None ,
114126 ):
115127 """Finds the closest vector embeddings to the given query vector."""
116128 self ._vector_field = vector_field
117129 self ._query_vector = query_vector
118130 self ._limit = limit
119131 self ._distance_measure = distance_measure
132+ self ._distance_result_field = distance_result_field
133+ self ._distance_threshold = distance_threshold
120134 return self
121135
122136 def stream (
0 commit comments