@@ -18,7 +18,7 @@ use chroma_sysdb::{GetCollectionsOptions, SysDb};
18
18
use chroma_system:: System ;
19
19
use chroma_types:: {
20
20
operator:: { Filter , KnnBatch , KnnProjection , Limit , Projection , Scan } ,
21
- plan:: { Count , Get , Knn , Retrieve } ,
21
+ plan:: { Count , Get , Knn , Search } ,
22
22
AddCollectionRecordsError , AddCollectionRecordsRequest , AddCollectionRecordsResponse ,
23
23
Collection , CollectionUuid , CountCollectionsError , CountCollectionsRequest ,
24
24
CountCollectionsResponse , CountRequest , CountResponse , CreateCollectionError ,
@@ -34,7 +34,7 @@ use chroma_types::{
34
34
HeartbeatError , HeartbeatResponse , Include , KnnIndex , ListCollectionsRequest ,
35
35
ListCollectionsResponse , ListDatabasesError , ListDatabasesRequest , ListDatabasesResponse ,
36
36
Operation , OperationRecord , QueryError , QueryRequest , QueryResponse , ResetError , ResetResponse ,
37
- RetrieveRequest , RetrieveResponse , Segment , SegmentScope , SegmentType , SegmentUuid ,
37
+ SearchRequest , SearchResponse , Segment , SegmentScope , SegmentType , SegmentUuid ,
38
38
UpdateCollectionError , UpdateCollectionRecordsError , UpdateCollectionRecordsRequest ,
39
39
UpdateCollectionRecordsResponse , UpdateCollectionRequest , UpdateCollectionResponse ,
40
40
UpdateTenantError , UpdateTenantRequest , UpdateTenantResponse , UpsertCollectionRecordsError ,
@@ -63,7 +63,7 @@ struct Metrics {
63
63
add_retries_counter : Counter < u64 > ,
64
64
update_retries_counter : Counter < u64 > ,
65
65
upsert_retries_counter : Counter < u64 > ,
66
- retrieve_retries_counter : Counter < u64 > ,
66
+ search_retries_counter : Counter < u64 > ,
67
67
}
68
68
69
69
#[ derive( Clone , Debug ) ]
@@ -103,7 +103,7 @@ impl ServiceBasedFrontend {
103
103
let add_retries_counter = meter. u64_counter ( "add_retries" ) . build ( ) ;
104
104
let update_retries_counter = meter. u64_counter ( "update_retries" ) . build ( ) ;
105
105
let upsert_retries_counter = meter. u64_counter ( "upsert_retries" ) . build ( ) ;
106
- let retrieve_retries_counter = meter. u64_counter ( "retrieve_retries " ) . build ( ) ;
106
+ let search_retries_counter = meter. u64_counter ( "search_retries " ) . build ( ) ;
107
107
let metrics = Arc :: new ( Metrics {
108
108
fork_retries_counter,
109
109
delete_retries_counter,
@@ -113,7 +113,7 @@ impl ServiceBasedFrontend {
113
113
add_retries_counter,
114
114
update_retries_counter,
115
115
upsert_retries_counter,
116
- retrieve_retries_counter ,
116
+ search_retries_counter ,
117
117
} ) ;
118
118
// factor: 2.0,
119
119
// min_delay_ms: 100,
@@ -1581,47 +1581,44 @@ impl ServiceBasedFrontend {
1581
1581
res
1582
1582
}
1583
1583
1584
- pub async fn retryable_retrieve (
1584
+ pub async fn retryable_search (
1585
1585
& mut self ,
1586
- request : RetrieveRequest ,
1587
- ) -> Result < RetrieveResponse , QueryError > {
1586
+ request : SearchRequest ,
1587
+ ) -> Result < SearchResponse , QueryError > {
1588
1588
// Get collection and segments once for all queries
1589
1589
let collection_and_segments = self
1590
1590
. collections_with_segments_provider
1591
1591
. get_collection_with_segments ( request. collection_id )
1592
1592
. await
1593
1593
. map_err ( |err| QueryError :: Other ( Box :: new ( err) as Box < dyn ChromaError > ) ) ?;
1594
1594
1595
- // Create a single Retrieve plan with one scan and the payloads from the request
1596
- let retrieve_plan = Retrieve {
1595
+ // Create a single Search plan with one scan and the payloads from the request
1596
+ let search_plan = Search {
1597
1597
scan : Scan {
1598
1598
collection_and_segments,
1599
1599
} ,
1600
- payloads : request. retrievals ,
1600
+ payloads : request. searches ,
1601
1601
} ;
1602
1602
1603
- // Execute the single retrieve plan using the executor
1604
- let result = self . executor . retrieve ( retrieve_plan ) . await ?;
1603
+ // Execute the single search plan using the executor
1604
+ let result = self . executor . search ( search_plan ) . await ?;
1605
1605
1606
- Ok ( RetrieveResponse {
1606
+ Ok ( SearchResponse {
1607
1607
results : result. results ,
1608
1608
} )
1609
1609
}
1610
1610
1611
- pub async fn retrieve (
1612
- & mut self ,
1613
- request : RetrieveRequest ,
1614
- ) -> Result < RetrieveResponse , QueryError > {
1611
+ pub async fn search ( & mut self , request : SearchRequest ) -> Result < SearchResponse , QueryError > {
1615
1612
let retries = Arc :: new ( AtomicUsize :: new ( 0 ) ) ;
1616
- let retrieve_to_retry = || {
1613
+ let search_to_retry = || {
1617
1614
let mut self_clone = self . clone ( ) ;
1618
1615
let request_clone = request. clone ( ) ;
1619
1616
let cache_clone = self
1620
1617
. collections_with_segments_provider
1621
1618
. collections_with_segments_cache
1622
1619
. clone ( ) ;
1623
1620
async move {
1624
- let res = self_clone. retryable_retrieve ( request_clone) . await ;
1621
+ let res = self_clone. retryable_search ( request_clone) . await ;
1625
1622
match res {
1626
1623
Ok ( res) => Ok ( res) ,
1627
1624
Err ( e) => {
@@ -1637,22 +1634,22 @@ impl ServiceBasedFrontend {
1637
1634
}
1638
1635
}
1639
1636
} ;
1640
- let res = retrieve_to_retry
1637
+ let res = search_to_retry
1641
1638
. retry ( self . collections_with_segments_provider . get_retry_backoff ( ) )
1642
1639
// NOTE: Transport level errors will manifest as unknown errors, and they should also be retried
1643
1640
. when ( |e| matches ! ( e. code( ) , ErrorCodes :: NotFound | ErrorCodes :: Unknown ) )
1644
1641
. notify ( |_, _| {
1645
1642
let retried = retries. fetch_add ( 1 , Ordering :: Relaxed ) ;
1646
1643
if retried > 0 {
1647
1644
tracing:: info!(
1648
- "Retrying retrieve () request for collection {}" ,
1645
+ "Retrying search () request for collection {}" ,
1649
1646
request. collection_id
1650
1647
) ;
1651
1648
}
1652
1649
} )
1653
1650
. await ;
1654
1651
self . metrics
1655
- . retrieve_retries_counter
1652
+ . search_retries_counter
1656
1653
. add ( retries. load ( Ordering :: Relaxed ) as u64 , & [ ] ) ;
1657
1654
res
1658
1655
}
0 commit comments