新建Collection

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

前提条件

接口定义

Client.create(
    name: str,
    dimension: int,
    dtype: Union[Type[int], Type[float]]=float,
    fields_schema: Optional[Dict[str, Union[Type[str], Type[int], Type[float], Type[bool]]]]=None,
    metric: str='cosine',
    extra_params: Dict[str, Any]=None,
    timeout: Optional[int]=None,
    vectors: Union[None, VectorParam, Dict[str, VectorParam]] = None,
) -> DashVectorResponse

使用示例

说明

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

创建单向量集合

import dashvector

client = dashvector.Client(
    api_key='YOUR_API_KEY',
    endpoint='YOUR_CLUSTER_ENDPOINT'
)

# 创建一个名称为quickstart、向量维度为4、
# 向量数据类型为float(默认)、
# 距离度量方式为dotproduct(内积)的Collection
# 并预先定义三个Field,名称为name、weight、age,数据类型分别为str、float、int
# timeout为-1 ,开启create接口异步模式
ret = client.create(
    name='quickstart',
    dimension=4,
    metric='dotproduct',
    dtype=float,
    fields_schema={'name': str, 'weight': float, 'age': int},
    timeout=-1
)


# 判断collection是否创建成功
if ret:
    print('create collection success!')
# 等同于下列代码
# from dashvector import DashVectorCode
# if ret.code == DashVectorCode.Success:
#     print('create collection success!')

创建多向量集合

ret = client.create(
    'multi_vector_demo',
    vectors={
        "title": VectorParam(4),
        "content": VectorParam(6, metric="euclidean"),
    },
    fields_schema={
        'author': str,
    }
)
assert ret

入参描述

参数

类型

默认值

说明

name

str

-

待创建的Collection名称

dimension

int

-

向量维度

dtype(可选)

Union[Type[int], Type[float]]

float

向量数据类型

fields_schema

(可选)

Optional[Dict[str,Union[Type[str],

Type[int], Type[float],

Type[bool]]]]

None

Fields定义

metric(可选)

str

cosine

距离度量方式,euclidean/dotproduct/cosine

值为cosine时,dtype必须为float

extra_params(可选)

Dict[str, Any]

None

可选参数:

timeout(可选)

Optional[int]

None

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

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

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

vectors (可选)

Union[None, VectorParam, Dict[str, VectorParam]]

None

可选参数:

  • None:单向量集合。

  • VectorParam: 用于开启量化等,详情参考 VectorParam

  • Dict[str, VectorParam]: 定义多向量集合,详情参考 多向量检索

说明

出参描述

说明

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

字段

类型

描述

示例

code

int

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

0

message

str

返回消息

success

request_id

str

请求唯一id

19215409-ea66-4db9-8764-26ce2eb5bb99