新建 CollectionView

最近更新时间:2024-07-03 15:43:41

我的收藏
CreateCollectionView()用于为已创建的 AI 类向量数据库创建 CollectionView,以应用 AI 套件上传文件写入数据。一个新的 CollectionView 需要指定索引字段、配置文件拆分规则。

构建索引结构

创建 Collection 之前,需要针对预上传的文件数据选取可作为 Filter 索引的标量字段,以便使用该字段的 Filter 条件表达式过滤查找文件。通常选取文件的 Metadata 信息字段。如下示例,预以文件的作者字段为 Filter 索引,设定字段名为 author_name
说明:
不做过滤查询、检索的标量字段不必建立 Filter 索引。切勿将所有标量字段建立索引,导致内存资源的浪费。
插入数据时动态增加的标量字段暂不支持创建 Filter 索引,请在创建 Collection 时规划的字段。
index := tcvectordb.Indexes{
FilterIndex: []tcvectordb.FilterIndex{
{
FieldName: "author_name",
FieldType: tcvectordb.String,
IndexType: tcvectordb.FILTER,
},
},
}
参数名
是否必选
参数配置
FieldName
配置可作为 Filter 索引的自定义扩展的标量字段名。
说明:
Filter 索引(Filter Index)是建立在标量字段的索引。该标量字段名称、类型均由用户自定义,不限制标量字段数量。
标量字段被建立 Filter 索引之后,向量检索时,将依据 Filter 指定的标量字段的条件表达式进行过滤查询和范围查询以此来匹配相似向量。
FieldType
指定自定义字段的数据类型。取值如下:
String:字符型。
Uint64:指无符号整数(unsigned integer)。
Array:数组类型,默认数组元素为 string。
IndexType
该参数固定设置为 FILTER

配置文件处理参数

创建 Collection 之前,需要指定文件 Embedding 与 Split 预处理文件的相关参数。
language := string(tcvectordb.LanguageChinese)
enableWordsEmbedding := true
appendTitleToChunk := true
appendKeywordsToChunk := false
参数类别
参数名
是否必选
参数配置
Embedding
language
取值如下所示:
LanguageChinese:中文。
LanguageEnglish:英文。
LanguageMulti:多语言。
enableWordsEmbedding
配置在检索时,是否开启词(Words)向量精排,并进行词向量化。
true:开启。
false:不开启,默认为 false。
SplitterPreprocess
appendTitleToChunk
在对文件拆分时,配置是否将 Title 追加到切分后的段落后面一并 Embedding。取值如下所示:
true:将段落 Title 追加到切分后的段落。
false:不追加。默认值为 false。
appendKeywordsToChunk
在对文件拆分时,配置是否将关键字 keywords 追加到切分后的段落一并 Embedding。取值如下所示:
true:将全文的 keywords 追加到切分后的段落。默认值为 true。
false:不追加。

创建 CollectionView

如下示例,基于以上配置的参数,创建集合视图 go-sdk-test-ai-coll
import (
"context"
"log"
"github.com/tencent/vectordatabase-sdk-go/tcvectordb"
)

var (
ctx = context.Background()
aiDatabase = "go-sdk-test-ai-db"
collectionViewName = "go-sdk-test-ai-coll"
)

db := client.AIDatabase(aiDatabase)
coll, _ := db.CreateCollectionView(ctx, collectionViewName, tcvectordb.CreateCollectionViewParams{
Description: "test ai collectionView",
Indexes: index,
Embedding: &collection_view.DocumentEmbedding{
Language: language,
EnableWordsEmbedding: &enableWordsEmbedding,
},
SplitterPreprocess: &collection_view.SplitterPreprocess{
AppendTitleToChunk: &appendTitleToChunk,
AppendKeywordsToChunk: &appendKeywordsToChunk,
},
})
log.Printf("CreateCollectionView success: %v: %v", coll.DatabaseName, coll.CollectionViewName)

请求参数

参数
参数含义
是否必选
配置方法
collectionViewName
指定 CollectionView 的名称。
CollectionView 命名要求如下:
只能使用英文字母,数字,下划线_、中划线-,并以英文字母开头。
长度要求:[1,128]。
Description
指定 CollectionView 的描述信息
取值类型:string。
字符长度要求:[1,256]。
示例:this is the collection description。