Skip to content

Commit 56676d1

Browse files
V1.11.0 (#82)
* update grpc * update rest * version up * integration test qdrant version up * use dev version in integration test (temp) * update grpc * update openapi * Update latest Qdrant version to v1.11.0 --------- Co-authored-by: timvisee <tim@visee.me>
1 parent 2bfeb3f commit 56676d1

18 files changed

Lines changed: 1481 additions & 163 deletions

File tree

examples/node-js-basic/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@
1515
"author": "Qdrant Team",
1616
"license": "Apache-2.0",
1717
"dependencies": {
18-
"@qdrant/qdrant-js": "^1.10.0"
18+
"@qdrant/qdrant-js": "^1.11.0"
1919
}
2020
}

packages/js-client-grpc/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# @qdrant/js-client-grpc
22

3+
## 1.11.0
4+
5+
### Minor Changes
6+
7+
- Qdrant v1.11.0 API
8+
39
## 1.10.0
410

511
### Minor Changes

packages/js-client-grpc/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@qdrant/js-client-grpc",
3-
"version": "1.10.0",
3+
"version": "1.11.0",
44
"engines": {
55
"node": ">=18.0.0",
66
"pnpm": ">=8"

packages/js-client-grpc/proto/collections.proto

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ enum PayloadSchemaType {
129129
Text = 5;
130130
Bool = 6;
131131
Datetime = 7;
132+
Uuid = 8;
132133
}
133134

134135
enum QuantizationType {
@@ -385,22 +386,56 @@ enum TokenizerType {
385386
Multilingual = 4;
386387
}
387388

389+
message KeywordIndexParams {
390+
optional bool is_tenant = 1; // If true - used for tenant optimization.
391+
optional bool on_disk = 2; // If true - store index on disk.
392+
}
393+
394+
message IntegerIndexParams {
395+
bool lookup = 1; // If true - support direct lookups.
396+
bool range = 2; // If true - support ranges filters.
397+
optional bool is_principal = 3; // If true - use this key to organize storage of the collection data. This option assumes that this key will be used in majority of filtered requests.
398+
optional bool on_disk = 4; // If true - store index on disk.
399+
}
400+
401+
message FloatIndexParams {
402+
optional bool on_disk = 1; // If true - store index on disk.
403+
optional bool is_principal = 2; // If true - use this key to organize storage of the collection data. This option assumes that this key will be used in majority of filtered requests.
404+
}
405+
406+
message GeoIndexParams {
407+
}
408+
388409
message TextIndexParams {
389410
TokenizerType tokenizer = 1; // Tokenizer type
390411
optional bool lowercase = 2; // If true - all tokens will be lowercase
391412
optional uint64 min_token_len = 3; // Minimal token length
392413
optional uint64 max_token_len = 4; // Maximal token length
393414
}
394415

395-
message IntegerIndexParams {
396-
bool lookup = 1; // If true - support direct lookups.
397-
bool range = 2; // If true - support ranges filters.
416+
message BoolIndexParams {
417+
}
418+
419+
message DatetimeIndexParams {
420+
optional bool on_disk = 1; // If true - store index on disk.
421+
optional bool is_principal = 2; // If true - use this key to organize storage of the collection data. This option assumes that this key will be used in majority of filtered requests.
422+
}
423+
424+
message UuidIndexParams {
425+
optional bool is_tenant = 1; // If true - used for tenant optimization.
426+
optional bool on_disk = 2; // If true - store index on disk.
398427
}
399428

400429
message PayloadIndexParams {
401430
oneof index_params {
402-
TextIndexParams text_index_params = 1; // Parameters for text index
431+
KeywordIndexParams keyword_index_params = 3; // Parameters for keyword index
403432
IntegerIndexParams integer_index_params = 2; // Parameters for integer index
433+
FloatIndexParams float_index_params = 4; // Parameters for float index
434+
GeoIndexParams geo_index_params = 5; // Parameters for geo index
435+
TextIndexParams text_index_params = 1; // Parameters for text index
436+
BoolIndexParams bool_index_params = 6; // Parameters for bool index
437+
DatetimeIndexParams datetime_index_params = 7; // Parameters for datetime index
438+
UuidIndexParams uuid_index_params = 8; // Parameters for uuid index
404439
}
405440
}
406441

@@ -511,12 +546,20 @@ message ShardTransferInfo {
511546
bool sync = 4; // If `true` transfer is a synchronization of a replicas; If `false` transfer is a moving of a shard from one peer to another
512547
}
513548

549+
message ReshardingInfo {
550+
uint32 shard_id = 1;
551+
uint64 peer_id = 2;
552+
optional ShardKey shard_key = 3;
553+
}
554+
514555
message CollectionClusterInfoResponse {
515556
uint64 peer_id = 1; // ID of this peer
516557
uint64 shard_count = 2; // Total number of shards
517558
repeated LocalShardInfo local_shards = 3; // Local shards
518559
repeated RemoteShardInfo remote_shards = 4; // Remote shards
519560
repeated ShardTransferInfo shard_transfers = 5; // Shard transfers
561+
// TODO(resharding): enable on release:
562+
// repeated ReshardingInfo resharding_operations = 6; // Resharding operations
520563
}
521564

522565
message MoveShard {

packages/js-client-grpc/proto/points.proto

Lines changed: 62 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ message VectorInput {
7979
// ---------------------------------------------
8080
// ----------------- ShardKeySelector ----------
8181
// ---------------------------------------------
82+
8283
message ShardKeySelector {
8384
repeated ShardKey shard_keys = 1; // List of shard keys which should be used in the request
8485
}
@@ -112,6 +113,7 @@ message GetPoints {
112113
optional WithVectorsSelector with_vectors = 5; // Options for specifying which vectors to include into response
113114
optional ReadConsistency read_consistency = 6; // Options for specifying read consistency guarantees
114115
optional ShardKeySelector shard_key_selector = 7; // Specify in which shards to look for the points, if not specified - look in all shards
116+
optional uint64 timeout = 8; // If set, overrides global timeout setting for this request. Unit is seconds.
115117
}
116118

117119
message UpdatePointVectors {
@@ -173,6 +175,7 @@ enum FieldType {
173175
FieldTypeText = 4;
174176
FieldTypeBool = 5;
175177
FieldTypeDatetime = 6;
178+
FieldTypeUuid = 7;
176179
}
177180

178181
message CreateFieldIndexCollection {
@@ -265,7 +268,7 @@ message SearchParams {
265268
optional bool exact = 2;
266269

267270
/*
268-
If set to true, search will ignore quantized vector data
271+
If set to true, search will ignore quantized vector data
269272
*/
270273
optional QuantizationSearchParams quantization = 3;
271274
/*
@@ -358,16 +361,17 @@ message ScrollPoints {
358361
optional ReadConsistency read_consistency = 8; // Options for specifying read consistency guarantees
359362
optional ShardKeySelector shard_key_selector = 9; // Specify in which shards to look for the points, if not specified - look in all shards
360363
optional OrderBy order_by = 10; // Order the records by a payload field
364+
optional uint64 timeout = 11; // If set, overrides global timeout setting for this request. Unit is seconds.
361365
}
362366

363-
// How to use positive and negative vectors to find the results, default is `AverageVector`:
367+
// How to use positive and negative vectors to find the results, default is `AverageVector`.
364368
enum RecommendStrategy {
365-
// Average positive and negative vectors and create a single query with the formula
369+
// Average positive and negative vectors and create a single query with the formula
366370
// `query = avg_pos + avg_pos - avg_neg`. Then performs normal search.
367371
AverageVector = 0;
368372

369-
// Uses custom search objective. Each candidate is compared against all
370-
// examples, its score is then chosen from the `max(max_pos_score, max_neg_score)`.
373+
// Uses custom search objective. Each candidate is compared against all
374+
// examples, its score is then chosen from the `max(max_pos_score, max_neg_score)`.
371375
// If the `max_neg_score` is chosen then it is squared and negated.
372376
BestScore = 1;
373377
}
@@ -433,7 +437,7 @@ message RecommendPointGroups {
433437
message TargetVector {
434438
oneof target {
435439
VectorExample single = 1;
436-
440+
437441
// leaving extensibility for possibly adding multi-target
438442
}
439443
}
@@ -480,6 +484,7 @@ message CountPoints {
480484
optional bool exact = 3; // If `true` - return exact count, if `false` - return approximate count
481485
optional ReadConsistency read_consistency = 4; // Options for specifying read consistency guarantees
482486
optional ShardKeySelector shard_key_selector = 5; // Specify in which shards to look for the points, if not specified - look in all shards
487+
optional uint64 timeout = 6; // If set, overrides global timeout setting for this request. Unit is seconds.
483488
}
484489

485490
message RecommendInput {
@@ -504,6 +509,16 @@ message ContextInput {
504509

505510
enum Fusion {
506511
RRF = 0; // Reciprocal Rank Fusion
512+
DBSF = 1; // Distribution-Based Score Fusion
513+
}
514+
515+
// Sample points from the collection
516+
//
517+
// Available sampling methods:
518+
//
519+
// * `random` - Random sampling
520+
enum Sample {
521+
Random = 0;
507522
}
508523

509524
message Query {
@@ -514,6 +529,7 @@ message Query {
514529
ContextInput context = 4; // Return points that live in positive areas.
515530
OrderBy order_by = 5; // Order the points by a payload field.
516531
Fusion fusion = 6; // Fuse the results of multiple prefetches.
532+
Sample sample = 7; // Sample points from the collection.
517533
}
518534
}
519535

@@ -553,6 +569,37 @@ message QueryBatchPoints {
553569
optional uint64 timeout = 4; // If set, overrides global timeout setting for this request. Unit is seconds.
554570
}
555571

572+
message QueryPointGroups {
573+
string collection_name = 1; // Name of the collection
574+
repeated PrefetchQuery prefetch = 2; // Sub-requests to perform first. If present, the query will be performed on the results of the prefetches.
575+
optional Query query = 3; // Query to perform. If missing, returns points ordered by their IDs.
576+
optional string using = 4; // Define which vector to use for querying. If missing, the default vector is used.
577+
optional Filter filter = 5; // Filter conditions - return only those points that satisfy the specified conditions.
578+
optional SearchParams params = 6; // Search params for when there is no prefetch.
579+
optional float score_threshold = 7; // Return points with scores better than this threshold.
580+
WithPayloadSelector with_payload = 8; // Options for specifying which payload to include or not
581+
optional WithVectorsSelector with_vectors = 9; // Options for specifying which vectors to include into response
582+
optional LookupLocation lookup_from = 10; // The location to use for IDs lookup, if not specified - use the current collection and the 'using' vector
583+
optional uint64 limit = 11; // Max number of points. Default is 3.
584+
optional uint64 group_size = 12; // Maximum amount of points to return per group. Default to 10.
585+
string group_by = 13; // Payload field to group by, must be a string or number field. If there are multiple values for the field, all of them will be used. One point can be in multiple groups.
586+
optional ReadConsistency read_consistency = 14; // Options for specifying read consistency guarantees
587+
optional WithLookup with_lookup = 15; // Options for specifying how to use the group id to lookup points in another collection
588+
optional uint64 timeout = 16; // If set, overrides global timeout setting for this request. Unit is seconds.
589+
optional ShardKeySelector shard_key_selector = 17; // Specify in which shards to look for the points, if not specified - look in all shards
590+
}
591+
592+
message FacetValue {
593+
oneof variant {
594+
string string_value = 1; // String value from the facet
595+
}
596+
}
597+
598+
message FacetValueHit {
599+
FacetValue value = 1; // Value from the facet
600+
uint64 count = 2; // Number of points with this value
601+
}
602+
556603
message PointsUpdateOperation {
557604
message PointStructList {
558605
repeated PointStruct points = 1;
@@ -666,7 +713,7 @@ message GroupId {
666713

667714
message PointGroup {
668715
GroupId id = 1; // Group id
669-
repeated ScoredPoint hits = 2; // Points in the group
716+
repeated ScoredPoint hits = 2; // Points in the group
670717
RetrievedPoint lookup = 3; // Point(s) from the lookup collection that matches the group id
671718
}
672719

@@ -689,6 +736,11 @@ message QueryBatchResponse {
689736
double time = 2; // Time spent to process
690737
}
691738

739+
message QueryGroupsResponse {
740+
GroupsResult result = 1;
741+
double time = 2; // Time spent to process
742+
}
743+
692744
message BatchResult {
693745
repeated ScoredPoint result = 1;
694746
}
@@ -770,12 +822,12 @@ message Filter {
770822
repeated Condition should = 1; // At least one of those conditions should match
771823
repeated Condition must = 2; // All conditions must match
772824
repeated Condition must_not = 3; // All conditions must NOT match
773-
optional MinShould min_should = 4; // At least minimum amount of given conditions should match
825+
optional MinShould min_should = 4; // At least minimum amount of given conditions should match
774826
}
775827

776828
message MinShould {
777-
repeated Condition conditions = 1;
778-
uint64 min_count = 2;
829+
repeated Condition conditions = 1;
830+
uint64 min_count = 2;
779831
}
780832

781833
message Condition {

packages/js-client-grpc/proto/points_service.proto

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,4 +117,8 @@ service Points {
117117
Universally query points in a batch fashion. This endpoint covers all capabilities of search, recommend, discover, filters. But also enables hybrid and multi-stage queries.
118118
*/
119119
rpc QueryBatch (QueryBatchPoints) returns (QueryBatchResponse) {}
120+
/*
121+
Universally query points in a group fashion. This endpoint covers all capabilities of search, recommend, discover, filters. But also enables hybrid and multi-stage queries.
122+
*/
123+
rpc QueryGroups (QueryPointGroups) returns (QueryGroupsResponse) {}
120124
}

0 commit comments

Comments
 (0)