Skip to content

Commit e206fe3

Browse files
committed
v1.18.0
1 parent 3ce7cd5 commit e206fe3

3 files changed

Lines changed: 111 additions & 3 deletions

File tree

gradle.properties

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# The version of qdrant to use to download protos
2-
qdrantProtosVersion=v1.17.0
2+
qdrantProtosVersion=dev
33

44
# The version of qdrant docker image to run integration tests against
5-
qdrantVersion=v1.17.0
5+
qdrantVersion=dev
66

77
# The version of the client to generate
8-
packageVersion=1.17.0
8+
packageVersion=1.18.0

src/main/java/io/qdrant/client/QdrantClient.java

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,12 @@
5555
import io.qdrant.client.grpc.Points.CountPoints;
5656
import io.qdrant.client.grpc.Points.CountResponse;
5757
import io.qdrant.client.grpc.Points.CreateFieldIndexCollection;
58+
import io.qdrant.client.grpc.Points.CreateVectorNameRequest;
5859
import io.qdrant.client.grpc.Points.DeleteFieldIndexCollection;
5960
import io.qdrant.client.grpc.Points.DeletePayloadPoints;
6061
import io.qdrant.client.grpc.Points.DeletePointVectors;
6162
import io.qdrant.client.grpc.Points.DeletePoints;
63+
import io.qdrant.client.grpc.Points.DeleteVectorNameRequest;
6264
import io.qdrant.client.grpc.Points.DiscoverBatchPoints;
6365
import io.qdrant.client.grpc.Points.DiscoverBatchResponse;
6466
import io.qdrant.client.grpc.Points.DiscoverPoints;
@@ -2348,6 +2350,60 @@ public ListenableFuture<UpdateResult> deletePayloadIndexAsync(
23482350
future, PointsOperationResponse::getResult, MoreExecutors.directExecutor());
23492351
}
23502352

2353+
/**
2354+
* Creates a new named vector on a collection.
2355+
*
2356+
* @param request The create vector name request.
2357+
* @return a new instance of {@link ListenableFuture}
2358+
*/
2359+
public ListenableFuture<UpdateResult> createVectorNameAsync(CreateVectorNameRequest request) {
2360+
return createVectorNameAsync(request, null);
2361+
}
2362+
2363+
/**
2364+
* Creates a new named vector on a collection.
2365+
*
2366+
* @param request The create vector name request.
2367+
* @param timeout The timeout for the call.
2368+
* @return a new instance of {@link ListenableFuture}
2369+
*/
2370+
public ListenableFuture<UpdateResult> createVectorNameAsync(
2371+
CreateVectorNameRequest request, @Nullable Duration timeout) {
2372+
logger.debug(
2373+
"Create vector name '{}' in '{}'", request.getVectorName(), request.getCollectionName());
2374+
ListenableFuture<PointsOperationResponse> future = getPoints(timeout).createVectorName(request);
2375+
addLogFailureCallback(future, "Create vector name");
2376+
return Futures.transform(
2377+
future, PointsOperationResponse::getResult, MoreExecutors.directExecutor());
2378+
}
2379+
2380+
/**
2381+
* Deletes a named vector from a collection.
2382+
*
2383+
* @param request The delete vector name request.
2384+
* @return a new instance of {@link ListenableFuture}
2385+
*/
2386+
public ListenableFuture<UpdateResult> deleteVectorNameAsync(DeleteVectorNameRequest request) {
2387+
return deleteVectorNameAsync(request, null);
2388+
}
2389+
2390+
/**
2391+
* Deletes a named vector from a collection.
2392+
*
2393+
* @param request The delete vector name request.
2394+
* @param timeout The timeout for the call.
2395+
* @return a new instance of {@link ListenableFuture}
2396+
*/
2397+
public ListenableFuture<UpdateResult> deleteVectorNameAsync(
2398+
DeleteVectorNameRequest request, @Nullable Duration timeout) {
2399+
logger.debug(
2400+
"Delete vector name '{}' in '{}'", request.getVectorName(), request.getCollectionName());
2401+
ListenableFuture<PointsOperationResponse> future = getPoints(timeout).deleteVectorName(request);
2402+
addLogFailureCallback(future, "Delete vector name");
2403+
return Futures.transform(
2404+
future, PointsOperationResponse::getResult, MoreExecutors.directExecutor());
2405+
}
2406+
23512407
/**
23522408
* Retrieves closest points based on vector similarity and the given filtering conditions.
23532409
*

src/test/java/io/qdrant/client/CollectionsTest.java

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
import io.qdrant.client.grpc.Collections.Distance;
1919
import io.qdrant.client.grpc.Collections.VectorParams;
2020
import io.qdrant.client.grpc.Collections.VectorsConfig;
21+
import io.qdrant.client.grpc.Points.CreateVectorNameRequest;
22+
import io.qdrant.client.grpc.Points.DeleteVectorNameRequest;
23+
import io.qdrant.client.grpc.Points.DenseVectorCreationConfig;
2124
import java.util.Comparator;
2225
import java.util.List;
2326
import java.util.concurrent.ExecutionException;
@@ -264,4 +267,53 @@ public void deleteAlias() throws ExecutionException, InterruptedException {
264267
List<String> aliases = client.listCollectionAliasesAsync(testName).get();
265268
assertTrue(aliases.isEmpty());
266269
}
270+
271+
@Test
272+
public void createAndDeleteVector() throws ExecutionException, InterruptedException {
273+
CreateCollection createCollection = getCreateCollection(testName);
274+
client.createCollectionAsync(createCollection).get();
275+
276+
client
277+
.createVectorNameAsync(
278+
CreateVectorNameRequest.newBuilder()
279+
.setCollectionName(testName)
280+
.setVectorName("vector_1")
281+
.setDenseConfig(
282+
DenseVectorCreationConfig.newBuilder()
283+
.setSize(8)
284+
.setDistance(Distance.Cosine)
285+
.build())
286+
.setWait(true)
287+
.build())
288+
.get();
289+
290+
assertTrue(
291+
client
292+
.getCollectionInfoAsync(testName)
293+
.get()
294+
.getConfig()
295+
.getParams()
296+
.getVectorsConfig()
297+
.getParamsMap()
298+
.containsMap("vector_1"));
299+
300+
client
301+
.deleteVectorNameAsync(
302+
DeleteVectorNameRequest.newBuilder()
303+
.setCollectionName(testName)
304+
.setVectorName("vector_1")
305+
.setWait(true)
306+
.build())
307+
.get();
308+
309+
assertFalse(
310+
client
311+
.getCollectionInfoAsync(testName)
312+
.get()
313+
.getConfig()
314+
.getParams()
315+
.getVectorsConfig()
316+
.getParamsMap()
317+
.containsMap("vector_1"));
318+
}
267319
}

0 commit comments

Comments
 (0)