新建Collection
本文介紹如何通過Java SDK創(chuàng)建一個新的Collection。
前提條件
已創(chuàng)建Cluster:創(chuàng)建Cluster。
已獲得API-KEY:API-KEY管理。
已安裝最新版SDK:安裝DashVector SDK。
接口定義
// class DashVectorClient
// 通過名稱和向量維度進行創(chuàng)建Collection
public Response<Void> create(String name, int dimension);
// 通過CreateCollectionRequest創(chuàng)建Collection
public Response<Void> create(CreateCollectionRequest request);
使用示例
需要使用您的api-key替換示例中的YOUR_API_KEY、您的Cluster Endpoint替換示例中的YOUR_CLUSTER_ENDPOINT,代碼才能正常運行。
創(chuàng)建單向量集合
import com.aliyun.dashvector.DashVectorClient;
import com.aliyun.dashvector.common.DashVectorException;
import com.aliyun.dashvector.models.requests.CreateCollectionRequest;
import com.aliyun.dashvector.models.responses.Response;
import com.aliyun.dashvector.proto.CollectionInfo;
import com.aliyun.dashvector.proto.FieldType;
public class Main {
public static void main(String[] args) throws DashVectorException {
DashVectorClient client = new DashVectorClient("YOUR_API_KEY", "YOUR_CLUSTER_ENDPOINT");
// 通過CreateCollectionRequest創(chuàng)建Collection
// 創(chuàng)建一個名稱為quickstart、向量維度為4、
// 向量數(shù)據(jù)類型為float(默認)、
// 距離度量方式為dotproduct(內(nèi)積)的Collection
// 并預(yù)先定義三個Field,名稱為name、weight、age,數(shù)據(jù)類型分別為str、float、int
CreateCollectionRequest request = CreateCollectionRequest.builder()
.name("quickstart")
.dimension(4)
.metric(CollectionInfo.Metric.dotproduct)
.dataType(CollectionInfo.DataType.FLOAT)
.fieldSchema("name", FieldType.STRING)
.fieldSchema("weight", FieldType.FLOAT)
.fieldSchema("age", FieldType.INT)
.build();
Response<Void> response = client.create(request);
System.out.println(response);
// example output:
// {"code":0,"message":"","requestId":"883716a3-32f8-4220-ae54-245fa9b87bf0"}
}
}
創(chuàng)建多向量集合
public void createCollection() {
CreateCollectionRequest request = CreateCollectionRequest.builder()
.name(collectionName)
.filedSchema("document_id", FieldType.STRING)
.filedSchema("chunk_id", FieldType.INT)
.vector("title", VectorParam.builder().dimension(4).quantizeType("DT_VECTOR_INT8").build())
.vector("content", VectorParam.builder().dimension(6).metric(CollectionInfo.Metric.euclidean).build())
.build();
Response<Void> createResponse = client.create(request);
System.out.println(createResponse);
assert createResponse.isSuccess();
}
入?yún)⒚枋?/b>
可通過CreateCollectionRequestBuilder
構(gòu)造 CreateCollectionRequest
對象,其可用方法如下:
方法 | 必填 | 默認值 | 描述 |
name(String name) | 是 | - | 待創(chuàng)建的集合名稱 |
dimension(int dimension) | 是 | - | 向量維度 |
dataType(CollectionInfo.DataType dataType) | 否 | DataType.FLOAT | 向量數(shù)據(jù)類型,支持
|
fieldsSchema(Map<String, FieldType> fieldsSchem) | 否 | - | Fields定義,F(xiàn)ield類型支持
|
fieldSchema(String key, FieldType value) | 否 | - | |
metric(CollectionInfo.Metric metric) | 否 | Metric.cosine | 距離度量支持
metric為 |
extraParams(Map<String, String> params) | 否 | - | 可選參數(shù):
|
timeout(Integer timeout) | 否 | - |
|
vectorParam(VectorParam) | 否 | - | 設(shè)置向量字段的高級參數(shù),如開啟量化,詳情參考VectorParam |
vectors(Map<String, VectorParam>) | 否 | - | 定義多向量集合,詳情參考多向量檢索 |
build() | - | - | 構(gòu)造 |
創(chuàng)建Collection時預(yù)先定義Fields的收益見Schema Free
量化策略詳情可參考向量動態(tài)量化
出參描述
返回結(jié)果為Response<Void>
對象,Response<Void>
對象中可獲取本次操作結(jié)果信息,如下表所示。
方法 | 類型 | 描述 | 示例 |
getCode() | int | 返回值,參考返回狀態(tài)碼說明 | 0 |
getMessage() | String | 返回消息 | success |
getRequestId() | String | 請求唯一id | 19215409-ea66-4db9-8764-26ce2eb5bb99 |
isSuccess() | Boolean | 判斷請求是否成功 | true |