From e206fe34fef609a745cef00e7271e040ce5d6ffa Mon Sep 17 00:00:00 2001 From: Anush008 Date: Thu, 7 May 2026 18:52:49 +0530 Subject: [PATCH 1/2] v1.18.0 --- gradle.properties | 6 +- .../java/io/qdrant/client/QdrantClient.java | 56 +++++++++++++++++++ .../io/qdrant/client/CollectionsTest.java | 52 +++++++++++++++++ 3 files changed, 111 insertions(+), 3 deletions(-) diff --git a/gradle.properties b/gradle.properties index 3d3e8ab4..2d7dc78d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,8 @@ # The version of qdrant to use to download protos -qdrantProtosVersion=v1.17.0 +qdrantProtosVersion=dev # The version of qdrant docker image to run integration tests against -qdrantVersion=v1.17.0 +qdrantVersion=dev # The version of the client to generate -packageVersion=1.17.0 +packageVersion=1.18.0 diff --git a/src/main/java/io/qdrant/client/QdrantClient.java b/src/main/java/io/qdrant/client/QdrantClient.java index 42edf51a..7d59e4dd 100644 --- a/src/main/java/io/qdrant/client/QdrantClient.java +++ b/src/main/java/io/qdrant/client/QdrantClient.java @@ -55,10 +55,12 @@ import io.qdrant.client.grpc.Points.CountPoints; import io.qdrant.client.grpc.Points.CountResponse; import io.qdrant.client.grpc.Points.CreateFieldIndexCollection; +import io.qdrant.client.grpc.Points.CreateVectorNameRequest; import io.qdrant.client.grpc.Points.DeleteFieldIndexCollection; import io.qdrant.client.grpc.Points.DeletePayloadPoints; import io.qdrant.client.grpc.Points.DeletePointVectors; import io.qdrant.client.grpc.Points.DeletePoints; +import io.qdrant.client.grpc.Points.DeleteVectorNameRequest; import io.qdrant.client.grpc.Points.DiscoverBatchPoints; import io.qdrant.client.grpc.Points.DiscoverBatchResponse; import io.qdrant.client.grpc.Points.DiscoverPoints; @@ -2348,6 +2350,60 @@ public ListenableFuture deletePayloadIndexAsync( future, PointsOperationResponse::getResult, MoreExecutors.directExecutor()); } + /** + * Creates a new named vector on a collection. + * + * @param request The create vector name request. + * @return a new instance of {@link ListenableFuture} + */ + public ListenableFuture createVectorNameAsync(CreateVectorNameRequest request) { + return createVectorNameAsync(request, null); + } + + /** + * Creates a new named vector on a collection. + * + * @param request The create vector name request. + * @param timeout The timeout for the call. + * @return a new instance of {@link ListenableFuture} + */ + public ListenableFuture createVectorNameAsync( + CreateVectorNameRequest request, @Nullable Duration timeout) { + logger.debug( + "Create vector name '{}' in '{}'", request.getVectorName(), request.getCollectionName()); + ListenableFuture future = getPoints(timeout).createVectorName(request); + addLogFailureCallback(future, "Create vector name"); + return Futures.transform( + future, PointsOperationResponse::getResult, MoreExecutors.directExecutor()); + } + + /** + * Deletes a named vector from a collection. + * + * @param request The delete vector name request. + * @return a new instance of {@link ListenableFuture} + */ + public ListenableFuture deleteVectorNameAsync(DeleteVectorNameRequest request) { + return deleteVectorNameAsync(request, null); + } + + /** + * Deletes a named vector from a collection. + * + * @param request The delete vector name request. + * @param timeout The timeout for the call. + * @return a new instance of {@link ListenableFuture} + */ + public ListenableFuture deleteVectorNameAsync( + DeleteVectorNameRequest request, @Nullable Duration timeout) { + logger.debug( + "Delete vector name '{}' in '{}'", request.getVectorName(), request.getCollectionName()); + ListenableFuture future = getPoints(timeout).deleteVectorName(request); + addLogFailureCallback(future, "Delete vector name"); + return Futures.transform( + future, PointsOperationResponse::getResult, MoreExecutors.directExecutor()); + } + /** * Retrieves closest points based on vector similarity and the given filtering conditions. * diff --git a/src/test/java/io/qdrant/client/CollectionsTest.java b/src/test/java/io/qdrant/client/CollectionsTest.java index c0a18f5c..ea772716 100644 --- a/src/test/java/io/qdrant/client/CollectionsTest.java +++ b/src/test/java/io/qdrant/client/CollectionsTest.java @@ -18,6 +18,9 @@ import io.qdrant.client.grpc.Collections.Distance; import io.qdrant.client.grpc.Collections.VectorParams; import io.qdrant.client.grpc.Collections.VectorsConfig; +import io.qdrant.client.grpc.Points.CreateVectorNameRequest; +import io.qdrant.client.grpc.Points.DeleteVectorNameRequest; +import io.qdrant.client.grpc.Points.DenseVectorCreationConfig; import java.util.Comparator; import java.util.List; import java.util.concurrent.ExecutionException; @@ -264,4 +267,53 @@ public void deleteAlias() throws ExecutionException, InterruptedException { List aliases = client.listCollectionAliasesAsync(testName).get(); assertTrue(aliases.isEmpty()); } + + @Test + public void createAndDeleteVector() throws ExecutionException, InterruptedException { + CreateCollection createCollection = getCreateCollection(testName); + client.createCollectionAsync(createCollection).get(); + + client + .createVectorNameAsync( + CreateVectorNameRequest.newBuilder() + .setCollectionName(testName) + .setVectorName("vector_1") + .setDenseConfig( + DenseVectorCreationConfig.newBuilder() + .setSize(8) + .setDistance(Distance.Cosine) + .build()) + .setWait(true) + .build()) + .get(); + + assertTrue( + client + .getCollectionInfoAsync(testName) + .get() + .getConfig() + .getParams() + .getVectorsConfig() + .getParamsMap() + .containsMap("vector_1")); + + client + .deleteVectorNameAsync( + DeleteVectorNameRequest.newBuilder() + .setCollectionName(testName) + .setVectorName("vector_1") + .setWait(true) + .build()) + .get(); + + assertFalse( + client + .getCollectionInfoAsync(testName) + .get() + .getConfig() + .getParams() + .getVectorsConfig() + .getParamsMap() + .containsMap("vector_1")); + } } From 31c250581d5a26a5af60612b251a6f28a2256658 Mon Sep 17 00:00:00 2001 From: Anush Date: Mon, 11 May 2026 17:34:37 +0530 Subject: [PATCH 2/2] chore: v1.18.0 in gradle.properties --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 2d7dc78d..10a64df8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,8 @@ # The version of qdrant to use to download protos -qdrantProtosVersion=dev +qdrantProtosVersion=v1.18.0 # The version of qdrant docker image to run integration tests against -qdrantVersion=dev +qdrantVersion=v1.18.0 # The version of the client to generate packageVersion=1.18.0