全部产品
Search
文档中心

向量检索服务:新建Collection

更新时间:Apr 23, 2024

本文介绍如何通过Java SDK创建一个新的Collection。

前提条件

接口定义

// class DashVectorClient

// 通过名称和向量维度进行创建Collection
public Response<Void> create(String name, int dimension);

// 通过CreateCollectionRequest创建Collection
public Response<Void> create(CreateCollectionRequest request);

使用示例

说明

需要使用您的api-key替换示例中的YOUR_API_KEY、您的Cluster Endpoint替换示例中的YOUR_CLUSTER_ENDPOINT,代码才能正常运行。

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创建Collection
      
        // 创建一个名称为quickstart、向量维度为4、
        // 向量数据类型为float(默认)、
        // 距离度量方式为dotproduct(内积)的Collection
        // 并预先定义三个Field,名称为name、weight、age,数据类型分别为str、float、int
        CreateCollectionRequest request = CreateCollectionRequest.builder()
            .name("quickstart")
            .dimension(4)
            .metric(CollectionInfo.Metric.dotproduct)
            .dataType(CollectionInfo.DataType.FLOAT)
            .filedSchema("name", FieldType.STRING)
            .filedSchema("weight", FieldType.FLOAT)
            .filedSchema("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"}
    }
}

入参描述

可通过CreateCollectionRequestBuilder构造 CreateCollectionRequest对象,其可用方法如下:

方法

必填

默认值

描述

name(String name)

-

待创建的集合名称

dimension(int dimension)

-

向量维度

dataType(CollectionInfo.DataType dataType)

DataType.FLOAT

向量数据类型,支持

  • DataType.INT

  • DataType.FLOAT

filedsSchema(Map<String, FieldType> filedsSchem)

-

Fields定义,Field类型支持

  • FieldType.BOOL

  • FieldType.STRING

  • FieldType.INT

  • FieldType.FLOAT

fieldSchema(String key, FieldType value)

-

metric(CollectionInfo.Metric metric)

Metric.cosine

距离度量支持

  • Metric.cosine

  • Metric.euclidean

  • Metric.dotproduct

metric为cosine时,datatype必须为FLOAT

extraParams(Map<String, String> params)

-

可选参数:

timeout(Interger timeout)

-

  • timeout == null:接口开启同步,待Collection 创建成功后返回

  • timeout == -1:接口开启异步

  • timeout >= 0:接口开启同步并等待,若规定时间Collection未创建成功,则返回超时

build()

-

-

构造 CreateCollectionRequest对象

说明

出参描述

说明

返回结果为Response<Void>对象,Response<Void>对象中可获取本次操作结果信息,如下表所示。

方法

类型

描述

示例

getCode()

int

返回值,参考返回状态码说明

0

getMessage()

String

返回消息

success

getRequestId()

String

请求唯一id

19215409-ea66-4db9-8764-26ce2eb5bb99

isSuccess()

Boolean

判断请求是否成功

true