Skip to content

Commit d99fe15

Browse files
committed
support batch describe collection
Signed-off-by: lentitude2tk <xushuang.hu@zilliz.com>
1 parent 8b55241 commit d99fe15

6 files changed

Lines changed: 87 additions & 4 deletions

File tree

examples/src/main/java/io/milvus/v2/GeneralExample.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,12 @@
2727
import io.milvus.v2.common.ConsistencyLevel;
2828
import io.milvus.v2.common.DataType;
2929
import io.milvus.v2.common.IndexParam;
30-
import io.milvus.v2.service.collection.request.*;
30+
import io.milvus.v2.service.collection.request.AddFieldReq;
31+
import io.milvus.v2.service.collection.request.CreateCollectionReq;
32+
import io.milvus.v2.service.collection.request.DescribeCollectionReq;
33+
import io.milvus.v2.service.collection.request.DropCollectionReq;
34+
import io.milvus.v2.service.collection.request.LoadCollectionReq;
35+
import io.milvus.v2.service.collection.request.ReleaseCollectionReq;
3136
import io.milvus.v2.service.collection.response.DescribeCollectionResp;
3237
import io.milvus.v2.service.collection.response.ListCollectionsResp;
3338
import io.milvus.v2.service.partition.request.CreatePartitionReq;
@@ -39,7 +44,12 @@
3944
import io.milvus.v2.service.vector.response.InsertResp;
4045
import io.milvus.v2.service.vector.response.SearchResp;
4146

42-
import java.util.*;
47+
import java.util.ArrayList;
48+
import java.util.Collections;
49+
import java.util.HashMap;
50+
import java.util.List;
51+
import java.util.Map;
52+
import java.util.Random;
4353

4454
public class GeneralExample {
4555
private static final MilvusClientV2 client;

sdk-core/src/main/java/io/milvus/v2/client/MilvusClientV2.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,17 @@ public Boolean hasCollection(HasCollectionReq request) {
392392
public DescribeCollectionResp describeCollection(DescribeCollectionReq request) {
393393
return rpcUtils.retry(()-> collectionService.describeCollection(this.getRpcStub(), request));
394394
}
395+
396+
/**
397+
* Gets the collections info in Milvus.
398+
*
399+
* @param request describe collections request
400+
* @return List<DescribeCollectionResp>
401+
*/
402+
public List<DescribeCollectionResp> batchDescribeCollection(BatchDescribeCollectionReq request) {
403+
return rpcUtils.retry(()-> collectionService.batchDescribeCollections(this.getRpcStub(), request));
404+
}
405+
395406
/**
396407
* get collection stats for a collection in Milvus.
397408
*

sdk-core/src/main/java/io/milvus/v2/service/collection/CollectionService.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,19 @@ public DescribeCollectionResp describeCollection(MilvusServiceGrpc.MilvusService
318318
return convertUtils.convertDescCollectionResp(response);
319319
}
320320

321+
public List<DescribeCollectionResp> batchDescribeCollections(MilvusServiceGrpc.MilvusServiceBlockingStub blockingStub, BatchDescribeCollectionReq request) {
322+
String title = String.format("BatchDescribeCollectionRequest collectionNames:%s, databaseName:%s", request.getCollectionNames(), request.getDatabaseName());
323+
BatchDescribeCollectionRequest.Builder builder = BatchDescribeCollectionRequest.newBuilder()
324+
.addAllCollectionName(request.getCollectionNames());
325+
if (StringUtils.isNotEmpty(request.getDatabaseName())) {
326+
builder.setDbName(request.getDatabaseName());
327+
}
328+
329+
BatchDescribeCollectionResponse response = blockingStub.batchDescribeCollection(builder.build());
330+
rpcUtils.handleResponse(title, response.getStatus());
331+
return convertUtils.convertDescCollectionsResp(response);
332+
}
333+
321334
public Void renameCollection(MilvusServiceGrpc.MilvusServiceBlockingStub blockingStub, RenameCollectionReq request) {
322335
String title = String.format("RenameCollectionRequest collectionName:%s", request.getCollectionName());
323336
RenameCollectionRequest renameCollectionRequest = RenameCollectionRequest.newBuilder()
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one
3+
* or more contributor license agreements. See the NOTICE file
4+
* distributed with this work for additional information
5+
* regarding copyright ownership. The ASF licenses this file
6+
* to you under the Apache License, Version 2.0 (the
7+
* "License"); you may not use this file except in compliance
8+
* with the License. You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing,
13+
* software distributed under the License is distributed on an
14+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
* KIND, either express or implied. See the License for the
16+
* specific language governing permissions and limitations
17+
* under the License.
18+
*/
19+
20+
package io.milvus.v2.service.collection.request;
21+
22+
import lombok.Data;
23+
import lombok.experimental.SuperBuilder;
24+
25+
import java.util.List;
26+
27+
@Data
28+
@SuperBuilder
29+
public class BatchDescribeCollectionReq {
30+
private String databaseName;
31+
private List<String> collectionNames;
32+
}

sdk-core/src/main/java/io/milvus/v2/utils/ConvertUtils.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,14 @@
2121

2222
import com.google.gson.reflect.TypeToken;
2323
import io.milvus.common.utils.JsonUtils;
24-
import io.milvus.grpc.*;
24+
import io.milvus.grpc.BatchDescribeCollectionResponse;
25+
import io.milvus.grpc.DescribeCollectionResponse;
26+
import io.milvus.grpc.FieldData;
27+
import io.milvus.grpc.FieldSchema;
28+
import io.milvus.grpc.IndexDescription;
29+
import io.milvus.grpc.KeyValuePair;
30+
import io.milvus.grpc.QueryResults;
31+
import io.milvus.grpc.SearchResults;
2532
import io.milvus.param.Constant;
2633
import io.milvus.param.ParamUtils;
2734
import io.milvus.response.QueryResultsWrapper;
@@ -140,6 +147,16 @@ public DescribeIndexResp convertToDescribeIndexResp(List<IndexDescription> respo
140147
return DescribeIndexResp.builder().indexDescriptions(descs).build();
141148
}
142149

150+
public List<DescribeCollectionResp> convertDescCollectionsResp(BatchDescribeCollectionResponse response) {
151+
List<DescribeCollectionResp> result = new ArrayList<>();
152+
List<DescribeCollectionResponse> responsesList = response.getResponsesList();
153+
for (DescribeCollectionResponse collectionResponse : responsesList) {
154+
DescribeCollectionResp describeCollectionResp = convertDescCollectionResp(collectionResponse);
155+
result.add(describeCollectionResp);
156+
}
157+
return result;
158+
}
159+
143160
public DescribeCollectionResp convertDescCollectionResp(DescribeCollectionResponse response) {
144161
Map<String, String> properties = new HashMap<>();
145162
response.getPropertiesList().forEach(prop->properties.put(prop.getKey(), prop.getValue()));

0 commit comments

Comments
 (0)