3434 _MetadataQuery ,
3535 _QueryReference ,
3636 _QueryReferenceMultiTarget ,
37+ _Boost ,
3738 _Sorting ,
3839)
3940from weaviate .collections .classes .internal import (
@@ -121,6 +122,7 @@ def get(
121122 return_references : Optional [REFERENCES ] = None ,
122123 generative : Optional [_Generative ] = None ,
123124 rerank : Optional [Rerank ] = None ,
125+ boost : Optional [_Boost ] = None ,
124126 ) -> search_get_pb2 .SearchRequest :
125127 if self ._validate_arguments :
126128 _validate_input (_ValidateArgument ([_Sorting , None ], "sort" , sort ))
@@ -143,6 +145,7 @@ def get(
143145 return_references = return_references ,
144146 generative = generative ,
145147 rerank = rerank ,
148+ boost = boost ,
146149 sort_by = sort_by ,
147150 )
148151
@@ -166,6 +169,7 @@ def hybrid(
166169 return_references : Optional [REFERENCES ] = None ,
167170 generative : Optional [_Generative ] = None ,
168171 rerank : Optional [Rerank ] = None ,
172+ boost : Optional [_Boost ] = None ,
169173 target_vector : Optional [TargetVectorJoinType ] = None ,
170174 ) -> search_get_pb2 .SearchRequest :
171175 return self .__create_request (
@@ -178,6 +182,7 @@ def hybrid(
178182 return_references = return_references ,
179183 generative = generative ,
180184 rerank = rerank ,
185+ boost = boost ,
181186 autocut = autocut ,
182187 hybrid_search = self ._parse_hybrid (
183188 query ,
@@ -207,6 +212,7 @@ def bm25(
207212 return_references : Optional [REFERENCES ] = None ,
208213 generative : Optional [_Generative ] = None ,
209214 rerank : Optional [Rerank ] = None ,
215+ boost : Optional [_Boost ] = None ,
210216 ) -> search_get_pb2 .SearchRequest :
211217 if self ._validate_arguments :
212218 _validate_input (
@@ -226,6 +232,7 @@ def bm25(
226232 return_references = return_references ,
227233 generative = generative ,
228234 rerank = rerank ,
235+ boost = boost ,
229236 autocut = autocut ,
230237 bm25 = (
231238 base_search_pb2 .BM25 (
@@ -258,6 +265,7 @@ def near_vector(
258265 group_by : Optional [_GroupBy ] = None ,
259266 generative : Optional [_Generative ] = None ,
260267 rerank : Optional [Rerank ] = None ,
268+ boost : Optional [_Boost ] = None ,
261269 target_vector : Optional [TargetVectorJoinType ] = None ,
262270 return_metadata : Optional [_MetadataQuery ] = None ,
263271 return_properties : Union [PROPERTIES , bool , None ] = None ,
@@ -272,6 +280,7 @@ def near_vector(
272280 return_references = return_references ,
273281 generative = generative ,
274282 rerank = rerank ,
283+ boost = boost ,
275284 autocut = autocut ,
276285 group_by = group_by ,
277286 near_vector = self ._parse_near_vector (
@@ -292,6 +301,7 @@ def near_object(
292301 group_by : Optional [_GroupBy ] = None ,
293302 generative : Optional [_Generative ] = None ,
294303 rerank : Optional [Rerank ] = None ,
304+ boost : Optional [_Boost ] = None ,
295305 target_vector : Optional [TargetVectorJoinType ] = None ,
296306 return_metadata : Optional [_MetadataQuery ] = None ,
297307 return_properties : Union [PROPERTIES , bool , None ] = None ,
@@ -306,6 +316,7 @@ def near_object(
306316 return_references = return_references ,
307317 generative = generative ,
308318 rerank = rerank ,
319+ boost = boost ,
309320 autocut = autocut ,
310321 group_by = group_by ,
311322 near_object = self ._parse_near_object (near_object , certainty , distance , target_vector ),
@@ -326,6 +337,7 @@ def near_text(
326337 group_by : Optional [_GroupBy ] = None ,
327338 generative : Optional [_Generative ] = None ,
328339 rerank : Optional [Rerank ] = None ,
340+ boost : Optional [_Boost ] = None ,
329341 target_vector : Optional [TargetVectorJoinType ] = None ,
330342 return_metadata : Optional [_MetadataQuery ] = None ,
331343 return_properties : Union [PROPERTIES , bool , None ] = None ,
@@ -340,6 +352,7 @@ def near_text(
340352 return_references = return_references ,
341353 generative = generative ,
342354 rerank = rerank ,
355+ boost = boost ,
343356 autocut = autocut ,
344357 group_by = group_by ,
345358 near_text = self ._parse_near_text (
@@ -366,6 +379,7 @@ def near_media(
366379 group_by : Optional [_GroupBy ] = None ,
367380 generative : Optional [_Generative ] = None ,
368381 rerank : Optional [Rerank ] = None ,
382+ boost : Optional [_Boost ] = None ,
369383 target_vector : Optional [TargetVectorJoinType ] = None ,
370384 return_metadata : Optional [_MetadataQuery ] = None ,
371385 return_properties : Union [PROPERTIES , bool , None ] = None ,
@@ -380,6 +394,7 @@ def near_media(
380394 return_references = return_references ,
381395 generative = generative ,
382396 rerank = rerank ,
397+ boost = boost ,
383398 autocut = autocut ,
384399 group_by = group_by ,
385400 ** self ._parse_media (
@@ -402,6 +417,7 @@ def __create_request(
402417 return_references : Optional [REFERENCES ] = None ,
403418 generative : Optional [_Generative ] = None ,
404419 rerank : Optional [Rerank ] = None ,
420+ boost : Optional [_Boost ] = None ,
405421 autocut : Optional [int ] = None ,
406422 group_by : Optional [_GroupBy ] = None ,
407423 near_vector : Optional [base_search_pb2 .NearVector ] = None ,
@@ -495,6 +511,7 @@ def __create_request(
495511 if rerank is not None
496512 else None
497513 ),
514+ boost = self .__boost_to_grpc (boost ),
498515 near_vector = near_vector ,
499516 sort_by = sort_by ,
500517 hybrid_search = hybrid_search ,
@@ -523,6 +540,40 @@ def _metadata_to_grpc(self, metadata: _MetadataQuery) -> search_get_pb2.Metadata
523540 vectors = metadata .vectors ,
524541 )
525542
543+ def __boost_to_grpc (
544+ self , boost : Optional [_Boost ]
545+ ) -> Optional [search_get_pb2 .Boost ]:
546+ if boost is None :
547+ return None
548+ conditions = []
549+ for cond in boost .conditions :
550+ grpc_cond = search_get_pb2 .BoostCondition (
551+ filter = _FilterToGRPC .convert (cond .filter ) if cond .filter is not None else None ,
552+ decay = (
553+ search_get_pb2 .DecayFunction (
554+ path = [cond .decay .property ],
555+ origin = cond .decay .origin ,
556+ scale = cond .decay .scale ,
557+ offset = cond .decay .offset ,
558+ curve = cond .decay .curve ,
559+ decay_value = cond .decay .decay_value ,
560+ )
561+ if cond .decay is not None
562+ else None
563+ ),
564+ property_value = (
565+ search_get_pb2 .PropertyValueFunction (
566+ path = [cond .property_value .property ],
567+ modifier = cond .property_value .modifier ,
568+ )
569+ if cond .property_value is not None
570+ else None
571+ ),
572+ weight = cond .weight ,
573+ )
574+ conditions .append (grpc_cond )
575+ return search_get_pb2 .Boost (conditions = conditions , weight = boost .weight , depth = boost .depth )
576+
526577 def __resolve_property (self , prop : QueryNested ) -> search_get_pb2 .ObjectPropertiesRequest :
527578 props = prop .properties if isinstance (prop .properties , list ) else [prop .properties ]
528579 return search_get_pb2 .ObjectPropertiesRequest (
0 commit comments