Skip to content

Commit bcdc6bf

Browse files
cosziotimviseeIvanPleshkov
authored
Bump v1.16.0 (#114)
* bump version to 1.16.0 * update changelogs * Apply suggestions from code review * update version in integration tests * mark connect v2 upgrade as breaking * regenerate from latest protos * export common_pb.ts --------- Co-authored-by: Tim Visée <tim+github@visee.me> Co-authored-by: Ivan Pleshkov <pleshkov.ivan@gmail.com>
1 parent a912eaa commit bcdc6bf

18 files changed

Lines changed: 1084 additions & 983 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.15.1"
18+
"@qdrant/qdrant-js": "^1.16.0"
1919
}
2020
}

packages/js-client-grpc/CHANGELOG.md

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

3+
## 1.16.0
4+
5+
### Minor Changes
6+
7+
- Qdrant v1.16.0 API
8+
- Breaking: removed `/locks` API
9+
- Breaking: removed `init_from` parameter from collection creation
10+
- Breaking: removed `vectors_count` from collection info
11+
- Breaking: Updated `@connectrpc/connect` dependency to v2
12+
- Added option to disable gRPC channel compression
13+
314
## 1.15.1
415

516
### 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.15.1",
3+
"version": "1.16.0",
44
"engines": {
55
"node": ">=18.0.0",
66
"pnpm": ">=8"

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package qdrant;
44
option csharp_namespace = "Qdrant.Client.Grpc";
55

66
import "json_with_int.proto";
7+
import "common.proto";
78

89
enum Datatype {
910
Default = 0;
@@ -12,6 +13,10 @@ enum Datatype {
1213
Float16 = 3;
1314
}
1415

16+
// ---------------------------------------------
17+
// ------------- Collection Config -------------
18+
// ---------------------------------------------
19+
1520
message VectorParams {
1621
uint64 size = 1; // Size of the vectors
1722
Distance distance = 2; // Distance function used for comparing vectors
@@ -724,6 +729,12 @@ message RestartTransfer {
724729
ShardTransferMethod method = 4;
725730
}
726731

732+
message ReplicatePoints {
733+
ShardKey from_shard_key = 1; // Source shard key
734+
ShardKey to_shard_key = 2; // Target shard key
735+
optional Filter filter = 3; // If set - only points matching the filter will be replicated
736+
}
737+
727738
enum ShardTransferMethod {
728739
StreamRecords = 0; // Stream shard records in batches
729740
Snapshot = 1; // Snapshot the shard and recover it on the target peer
@@ -758,6 +769,7 @@ message UpdateCollectionClusterSetupRequest {
758769
CreateShardKey create_shard_key = 7;
759770
DeleteShardKey delete_shard_key = 8;
760771
RestartTransfer restart_transfer = 9;
772+
ReplicatePoints replicate_points = 10;
761773
}
762774
optional uint64 timeout = 6; // Wait timeout for operation commit in seconds, if not specified - default value will be supplied
763775
}
Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
syntax = "proto3";
2+
package qdrant;
3+
4+
option csharp_namespace = "Qdrant.Client.Grpc";
5+
option java_outer_classname = "Points";
6+
7+
import "google/protobuf/timestamp.proto";
8+
9+
message PointId {
10+
oneof point_id_options {
11+
uint64 num = 1; // Numerical ID of the point
12+
string uuid = 2; // UUID
13+
}
14+
}
15+
16+
message GeoPoint {
17+
double lon = 1;
18+
double lat = 2;
19+
}
20+
21+
message Filter {
22+
repeated Condition should = 1; // At least one of those conditions should match
23+
repeated Condition must = 2; // All conditions must match
24+
repeated Condition must_not = 3; // All conditions must NOT match
25+
optional MinShould min_should = 4; // At least minimum amount of given conditions should match
26+
}
27+
28+
message MinShould {
29+
repeated Condition conditions = 1;
30+
uint64 min_count = 2;
31+
}
32+
33+
message Condition {
34+
oneof condition_one_of {
35+
FieldCondition field = 1;
36+
IsEmptyCondition is_empty = 2;
37+
HasIdCondition has_id = 3;
38+
Filter filter = 4;
39+
IsNullCondition is_null = 5;
40+
NestedCondition nested = 6;
41+
HasVectorCondition has_vector = 7;
42+
}
43+
}
44+
45+
message IsEmptyCondition {
46+
string key = 1;
47+
}
48+
49+
message IsNullCondition {
50+
string key = 1;
51+
}
52+
53+
message HasIdCondition {
54+
repeated PointId has_id = 1;
55+
}
56+
57+
message HasVectorCondition {
58+
string has_vector = 1;
59+
}
60+
61+
message NestedCondition {
62+
string key = 1; // Path to nested object
63+
Filter filter = 2; // Filter condition
64+
}
65+
66+
message FieldCondition {
67+
string key = 1;
68+
Match match = 2; // Check if point has field with a given value
69+
Range range = 3; // Check if points value lies in a given range
70+
GeoBoundingBox geo_bounding_box = 4; // Check if points geolocation lies in a given area
71+
GeoRadius geo_radius = 5; // Check if geo point is within a given radius
72+
ValuesCount values_count = 6; // Check number of values for a specific field
73+
GeoPolygon geo_polygon = 7; // Check if geo point is within a given polygon
74+
DatetimeRange datetime_range = 8; // Check if datetime is within a given range
75+
optional bool is_empty = 9; // Check if field is empty
76+
optional bool is_null = 10; // Check if field is null
77+
}
78+
79+
message Match {
80+
oneof match_value {
81+
string keyword = 1; // Match string keyword
82+
int64 integer = 2; // Match integer
83+
bool boolean = 3; // Match boolean
84+
string text = 4; // Match text
85+
RepeatedStrings keywords = 5; // Match multiple keywords
86+
RepeatedIntegers integers = 6; // Match multiple integers
87+
RepeatedIntegers except_integers = 7; // Match any other value except those integers
88+
RepeatedStrings except_keywords = 8; // Match any other value except those keywords
89+
string phrase = 9; // Match phrase text
90+
string text_any = 10; // Match any word in the text
91+
}
92+
}
93+
94+
message RepeatedStrings {
95+
repeated string strings = 1;
96+
}
97+
98+
message RepeatedIntegers {
99+
repeated int64 integers = 1;
100+
}
101+
102+
message Range {
103+
optional double lt = 1;
104+
optional double gt = 2;
105+
optional double gte = 3;
106+
optional double lte = 4;
107+
}
108+
109+
message DatetimeRange {
110+
optional google.protobuf.Timestamp lt = 1;
111+
optional google.protobuf.Timestamp gt = 2;
112+
optional google.protobuf.Timestamp gte = 3;
113+
optional google.protobuf.Timestamp lte = 4;
114+
}
115+
116+
message GeoBoundingBox {
117+
GeoPoint top_left = 1; // north-west corner
118+
GeoPoint bottom_right = 2; // south-east corner
119+
}
120+
121+
message GeoRadius {
122+
GeoPoint center = 1; // Center of the circle
123+
float radius = 2; // In meters
124+
}
125+
126+
message GeoLineString {
127+
repeated GeoPoint points = 1; // Ordered sequence of GeoPoints representing the line
128+
}
129+
130+
// For a valid GeoPolygon, both the exterior and interior GeoLineStrings must consist of a minimum of 4 points.
131+
// Additionally, the first and last points of each GeoLineString must be the same.
132+
message GeoPolygon {
133+
GeoLineString exterior = 1; // The exterior line bounds the surface
134+
repeated GeoLineString interiors = 2; // Interior lines (if present) bound holes within the surface
135+
}
136+
137+
message ValuesCount {
138+
optional uint64 lt = 1;
139+
optional uint64 gt = 2;
140+
optional uint64 gte = 3;
141+
optional uint64 lte = 4;
142+
}

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

Lines changed: 1 addition & 144 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package qdrant;
44
option csharp_namespace = "Qdrant.Client.Grpc";
55

66
import "collections.proto";
7+
import "common.proto";
78
import "google/protobuf/timestamp.proto";
89
import "json_with_int.proto";
910

@@ -31,17 +32,6 @@ message ReadConsistency {
3132
}
3233
}
3334

34-
// ---------------------------------------------
35-
// ------------- Point Id Requests -------------
36-
// ---------------------------------------------
37-
38-
message PointId {
39-
oneof point_id_options {
40-
uint64 num = 1; // Numerical ID of the point
41-
string uuid = 2; // UUID
42-
}
43-
}
44-
4535
message SparseIndices {
4636
repeated uint32 data = 1;
4737
}
@@ -1075,133 +1065,6 @@ message SearchMatrixOffsetsResponse {
10751065
optional Usage usage = 3;
10761066
}
10771067

1078-
// ---------------------------------------------
1079-
// ------------- Filter Conditions -------------
1080-
// ---------------------------------------------
1081-
1082-
message Filter {
1083-
repeated Condition should = 1; // At least one of those conditions should match
1084-
repeated Condition must = 2; // All conditions must match
1085-
repeated Condition must_not = 3; // All conditions must NOT match
1086-
optional MinShould min_should = 4; // At least minimum amount of given conditions should match
1087-
}
1088-
1089-
message MinShould {
1090-
repeated Condition conditions = 1;
1091-
uint64 min_count = 2;
1092-
}
1093-
1094-
message Condition {
1095-
oneof condition_one_of {
1096-
FieldCondition field = 1;
1097-
IsEmptyCondition is_empty = 2;
1098-
HasIdCondition has_id = 3;
1099-
Filter filter = 4;
1100-
IsNullCondition is_null = 5;
1101-
NestedCondition nested = 6;
1102-
HasVectorCondition has_vector = 7;
1103-
}
1104-
}
1105-
1106-
message IsEmptyCondition {
1107-
string key = 1;
1108-
}
1109-
1110-
message IsNullCondition {
1111-
string key = 1;
1112-
}
1113-
1114-
message HasIdCondition {
1115-
repeated PointId has_id = 1;
1116-
}
1117-
1118-
message HasVectorCondition {
1119-
string has_vector = 1;
1120-
}
1121-
1122-
message NestedCondition {
1123-
string key = 1; // Path to nested object
1124-
Filter filter = 2; // Filter condition
1125-
}
1126-
1127-
message FieldCondition {
1128-
string key = 1;
1129-
Match match = 2; // Check if point has field with a given value
1130-
Range range = 3; // Check if points value lies in a given range
1131-
GeoBoundingBox geo_bounding_box = 4; // Check if points geolocation lies in a given area
1132-
GeoRadius geo_radius = 5; // Check if geo point is within a given radius
1133-
ValuesCount values_count = 6; // Check number of values for a specific field
1134-
GeoPolygon geo_polygon = 7; // Check if geo point is within a given polygon
1135-
DatetimeRange datetime_range = 8; // Check if datetime is within a given range
1136-
optional bool is_empty = 9; // Check if field is empty
1137-
optional bool is_null = 10; // Check if field is null
1138-
}
1139-
1140-
message Match {
1141-
oneof match_value {
1142-
string keyword = 1; // Match string keyword
1143-
int64 integer = 2; // Match integer
1144-
bool boolean = 3; // Match boolean
1145-
string text = 4; // Match text
1146-
RepeatedStrings keywords = 5; // Match multiple keywords
1147-
RepeatedIntegers integers = 6; // Match multiple integers
1148-
RepeatedIntegers except_integers = 7; // Match any other value except those integers
1149-
RepeatedStrings except_keywords = 8; // Match any other value except those keywords
1150-
string phrase = 9; // Match phrase text
1151-
string text_any = 10; // Match any word in the text
1152-
}
1153-
}
1154-
1155-
message RepeatedStrings {
1156-
repeated string strings = 1;
1157-
}
1158-
1159-
message RepeatedIntegers {
1160-
repeated int64 integers = 1;
1161-
}
1162-
1163-
message Range {
1164-
optional double lt = 1;
1165-
optional double gt = 2;
1166-
optional double gte = 3;
1167-
optional double lte = 4;
1168-
}
1169-
1170-
message DatetimeRange {
1171-
optional google.protobuf.Timestamp lt = 1;
1172-
optional google.protobuf.Timestamp gt = 2;
1173-
optional google.protobuf.Timestamp gte = 3;
1174-
optional google.protobuf.Timestamp lte = 4;
1175-
}
1176-
1177-
message GeoBoundingBox {
1178-
GeoPoint top_left = 1; // north-west corner
1179-
GeoPoint bottom_right = 2; // south-east corner
1180-
}
1181-
1182-
message GeoRadius {
1183-
GeoPoint center = 1; // Center of the circle
1184-
float radius = 2; // In meters
1185-
}
1186-
1187-
message GeoLineString {
1188-
repeated GeoPoint points = 1; // Ordered sequence of GeoPoints representing the line
1189-
}
1190-
1191-
// For a valid GeoPolygon, both the exterior and interior GeoLineStrings must consist of a minimum of 4 points.
1192-
// Additionally, the first and last points of each GeoLineString must be the same.
1193-
message GeoPolygon {
1194-
GeoLineString exterior = 1; // The exterior line bounds the surface
1195-
repeated GeoLineString interiors = 2; // Interior lines (if present) bound holes within the surface
1196-
}
1197-
1198-
message ValuesCount {
1199-
optional uint64 lt = 1;
1200-
optional uint64 gt = 2;
1201-
optional uint64 gte = 3;
1202-
optional uint64 lte = 4;
1203-
}
1204-
12051068
// ---------------------------------------------
12061069
// -------------- Points Selector --------------
12071070
// ---------------------------------------------
@@ -1229,12 +1092,6 @@ message PointStruct {
12291092
optional Vectors vectors = 4;
12301093
}
12311094

1232-
1233-
message GeoPoint {
1234-
double lon = 1;
1235-
double lat = 2;
1236-
}
1237-
12381095
// ---------------------------------------------
12391096
// ----------- Measurements collector ----------
12401097
// ---------------------------------------------

packages/js-client-grpc/src/client-version.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export const PACKAGE_VERSION = '1.15.1';
1+
export const PACKAGE_VERSION = '1.16.0';
22

33
interface Version {
44
major: number;

0 commit comments

Comments
 (0)