You need to enable JavaScript to run this app.
导航
createCollection
最近更新时间:2024.12.10 15:18:23首次发布时间:2024.04.17 14:21:08

概述

createCollection 用于创建一个新的数据集 Collection。创建成功后,可以写入数据。

说明

  • 每一个 Collection 必须指定主键字段。
  • 当定义字段 fields 添加了一个向量类型 vector 的字段后,再添加新的字段时,字段类型不可选择 vector 类型。因为目前只支持单向量,不可添加多个向量字段。
  • 当定义字段 fields 添加了带 pipelineName 的 text 字段,则不允许添加 vector 字段,且只能有一个带 pipelineName 的 text 字段;当定义字段 fields 添加了不带 pipelineName 的 text 字段,则允许添加 vector 字段,且允许添加多个不带 pipelineName 的 text 字段,text 字段最多200个。

请求参数

请求参数是 CreateCollectionParam,CreateCollectionParam 类包括的参数如下表所示。

参数

子参数

类型

是否必选

默认值

参数说明

collectionName

string

指定创建的 Collection 名称。

  • 只能使用英文字母、数字、下划线_,并以英文字母开头,不能为空。
  • 长度要求:[1, 128]。
  • Collection 名称不能重复。

description

string

""

自定义 Collection 的描述。

  • 长度要求:[0, 65535]。

fields

说明

Field 实例的列表,一个 Collection 里的 Field 实例数量上限是 200。

fieldName

string

指定自定义字段的名称。

  • 只能使用英文字母、数字、下划线_,并以英文字母开头,不能为空。
  • 长度要求:[1, 128]。
  • 字段名称不能重复。

fieldType

string

指定自定义字段类型,如 FieldType.String,可选值详见 fieldType 可选值说明。

defaultVal

和 fieldType 一致

指定自定义字段默认值,默认值详见 fieldType 可选值说明。

  • 当 fieldName 作为主键时,defaultVal 不生效,同时也不会被校验。

dim

int

fieldType 为vector 时必选

指定自定义字段向量维度。

  • 取值范围:[4, 4096],且必须是 4 的倍数。
  • 向量维度是指向量中包含的元素的数量。

isPrimaryKey

bool

False

指定自定义字段是否为主键,主键用于唯一标识一行数据。
仅当自定义字段类型为 int64 类型 / string 类型时支持设置其为主键。
每个 Collection 有且仅有一个主键,其它字段 is_primary_key 默认为 False。若全部 fields 该字段均为 False,将自动生成主键。

  • 枚举值:True/False。

pipelineName

string

fieldType 为 text 时可选

文本。纯文本预处理能力 pipeline 是指向量数据库将文本切片、文本向量化、入库、存储自动化的预处理流程。支持以string形式写入原始数据。
pipeline_name 枚举值如下:

  • text_split_bge_large_zh:向量数据库使用切分器将长文本切分成短文本,调用 embedding 模型将短文本向量化。
  • text_bge_large_zh:向量数据库不切分文本,直接调用 embedding 模型将文本向量化。
  • text_split_bge_m3:向量数据库使用切分器将长文本切分成短文本,调用 bge m3 模型抽取短文本的稀疏特征和稠密特征,存入系统预设的稠密向量字段和稀疏向量字段。
  • text_bge_m3:向量数据库不切分文本,直接调用 bge m3 抽取短文本的稀疏特征和稠密特征,存入系统预设的稠密向量字段和稀疏向量字段。
  • text_split_bge_large_and_m3:向量数据库使用切分器将长文本切分成短文本,调用 bge v1.5 模型抽取短文本的稠密特征,存入系统预设的稠密向量字段;调用 bge m3 模型抽取短文本的稀疏特征,存入系统预设的稀疏向量字段。
  • text_bge_m3:向量数据库不切分文本,调用 bge v1.5 模型抽取短文本的稠密特征,存入系统预设的稠密向量字段;调用 bge m3 模型抽取短文本的稀疏特征,存入系统预设的稀疏向量字段。

fieldType 可选值

字段类型

可用索引类型

defaultVal默认值

数据写入时
取值范围

defaultVal
取值范围

可为主键

说明

int64

枚举

0

int64 范围

int64 范围

整数

float32

范围

0.0

float32 范围

float32 范围

浮点数

string

枚举

"default"

长度<=128

字符串

bool

枚举

false

true/false

true/false

布尔类型

list<string>

枚举

["default"]

List 长度<=32

List 长度<=32

字符串数组

list<int64>

枚举

[0]

List 长度<=32

List 长度<=32

整数数组

vector

向量

维度 4-2048

稠密向量。

  • fieldType 设置为 vector 时必选参数 dim。

sparse_vector

稀疏向量

非零元下标无限制
非零元值为 float32 范围

稀疏向量。

  • sparse_vector不能单独设置,必须与 vector 字段组合设置。
  • 接收形为<index,value>的json字典列表,来表示稀疏稀疏向量的关键词及其对应的权重值。

示例:
sparse_vector={"什么": 0.34, "是": 0.03, "B": 0.11, "M":0.32, "25": 0.03}

text

文本,注意事项:

  • fieldType 设置为 text 时可选参数 pipelineName。
  • 当定义字段 fields 添加了带 pipelineName 的 text 字段,则不允许添加 vector 字段,且只能有一个带 pipelineName 的 text 字段;当定义字段 fields 添加了不带 pipelineName 的 text 字段,则允许添加 vector 字段,且允许添加多个不带 pipelineName 的 text 字段,text 字段最多200个。

示例

请求参数

List<Field> fields = new ArrayList<>();
       fields.add(new Field().setFieldName("doc_id").setFieldType(FieldType.Int64).setPrimaryKey(true).build());
       fields.add(new Field().setFieldName("text_vector").setFieldType(FieldType.Vector).setDim(12).build());
       fields.add(new Field().setFieldName("text_sparse_vector").setFieldType(FieldType.Sparse_Vector).build());
       fields.add(new Field().setFieldName("like").setFieldType(FieldType.Int64).setDefaultVal(0).build());
       fields.add(new Field().setFieldName("price").setFieldType(FieldType.Float32).setDefaultVal(2.2).build());
       fields.add(new Field().setFieldName("aim").setFieldType(FieldType.Bool).setDefaultVal(false).build());
       fields.add(new Field().setFieldName("author").setFieldType(FieldType.List_String).build());
       CreateCollectionParam createCollectionParam = new CreateCollectionParam()
                                                       .setCollectionName("javaSDKTest")
                                                       .setFields(fields)
                                                       .setDescription("test")
                                                       .build();
       Collection collection = vikingDBService.createCollection(createCollectionParam);

返回值

Java 调用执行上面的任务,返回 Collection 实例。Collection 实例包含的属性如下表所示。

属性

类型

说明

collectionName

string

Collection 名称。

description

string

Collection 的描述。

fields

ArrayList

字段列表。

indexes

ArrayList

索引列表。

stat

map

统计/状态信息。

  • data_number:数据量条数。
  • data_storage:数据占用的存储大小,单位是字节。

createTime

string

数据集创建时间。

updateTime

string

数据集更新时间。

updatePerson

string

数据集更新人。