HTTP API新建Collection完整教程
本文详解如何通过HTTP API新建一个Collection。整体流程非常直接:先在控制台准备好Cluster和API-KEY,随后直接调用接口即可完成创建。下面逐步拆解。
前置要求
开始操作前,请确认已完成以下两项配置:
- 已成功创建Cluster(Cluster创建流程详见对应文档)。
- 已获取有效的API-KEY(API-KEY管理页面提供了详细指引)。
请求方法与端点
采用标准的HTTP POST方法,请求URL如下:
POST https://{Endpoint}/v1/collections
其中{Endpoint}代表您的Cluster端点地址,可在控制台Cluster详情页查看。
调用示例
通过两个典型场景展示实际调用方式。注意:请将示例中的YOUR_API_KEY替换为您的真实API-KEY,YOUR_CLUSTER_ENDPOINT替换为您的Cluster端点,代码方可正常执行。
创建单向量集合
最基础的情形:创建一个名为quickstart、向量维度为4、向量数据类型默认为float、距离度量采用dotproduct(内积)的Collection,并预先定义八个Field。
curl -XPOST \
-H 'dashvector-auth-token: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"name": "quickstart",
"dimension": 4,
"metric": "dotproduct",
"fields_schema": {
"name": "STRING",
"age": "INT",
"weight": "FLOAT",
"id": "LONG",
"tags":"ARRAY_STRING",
"numbers":"ARRAY_INT",
"bankCards":"ARRAY_LONG",
"grades":"ARRAY_FLOAT"
}
}' https://YOUR_CLUSTER_ENDPOINT/v1/collections
# example output:
# {"request_id":"19215409-ea66-4db9-8764-26ce2eb5bb99","code":0,"message":""}
创建多向量集合
如果业务需要多个向量字段(例如标题向量、内容向量),或需要稀疏向量(如摘要、关键词),可按以下方式定义vectors_schema和sparse_vectors_schema。
curl -XPOST \
-H 'dashvector-auth-token: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"name": "multi_vector_demo",
"vectors_schema": {
"title": {
"dimension": 4
},
"content": {
"dimension": 6,
"metric": "dotproduct"
}
},
"sparse_vectors_schema": {
"abstruct": {
"metric": "dotproduct"
},
"keywords": {
"metric": "dotproduct"
}
# 稀疏向量索引目前仅支持内积度量,dimension/dtype使用默认值无需设置
},
"fields_schema": {
"author": "STRING"
}
}' https://YOUR_CLUSTER_ENDPOINT/v1/collections
# example output:
# {"request_id":"819b6ffe-bf44-42a4-8efa-a53a93d93bcd","code":0,"message":""}
请求参数说明
下表汇总了请求中所有参数,便于对照配置。
| 参数 | 位置 | 类型 | 必填 | 描述 |
|---|---|---|---|---|
| {Endpoint} | path | str | 是 | Cluster的端点地址,可在控制台Cluster详情页获取 |
| dashvector-auth-token | header | str | 是 | API-KEY |
| name | body | str | 是 | 待创建的Collection名称 |
| dimension | body | int | 是 | 向量维度,取值范围 (1, 20000] |
| dtype | body | str | 否 | 向量数据类型,"FLOAT"(默认)/ "INT" |
| fields_schema | body | object | 否 | Field定义集合 |
| metric | body | str | 否 | 距离度量方式,"euclidean"/"dotproduct"/"cosine"(默认)。值为cosine时,dtype必须为FLOAT |
| extra_params | body | object | 否 | 可选参数: - quantize_type:量化策略,详情参考向量动态量化 - auto_id: 自动生成主键,默认开启 |
| vectors_schema | body | object | 否 | 多向量字段定义,类型为 Map,详情参考多向量检索 |
| sparse_vectors_schema | body | object | 否 | 多稀疏向量字段定义,类型为 Map,详情参考多向量检索 |
另外提醒:
- 创建Collection时预定义Fields的收益,可参考Schema Free相关说明。
- 量化策略详情可查阅向量动态量化文档。
响应参数说明
返回结果的结构如下,关键字段一目了然。
| 字段 | 类型 | 描述 | 示例 |
|---|---|---|---|
| code | int | 状态码,参考返回状态码说明 | 0 |
| message | str | 响应消息 | success |
| request_id | str | 请求唯一标识 | 19215409-ea66-4db9-8764-26ce2eb5bb99 |
