接口定义
CreateCollectionView() 用于为已创建的 AI 类向量数据库创建 CollectionView,以应用 AI 套件上传文件写入数据。一个新的 CollectionView 需要指定索引字段、配置文件拆分规则。
CreateCollectionView(ctx context.Context, name string, param CreateCollectionViewParams) (result *CreateAICollectionViewResult, err error)
构建索引结构
创建 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 := trueappendTitleToChunk := trueappendKeywordsToChunk := 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:不追加。 |
| chunkSplitter | 否 | 以正则表达式的方式配置文档拆分方式,例如: \\n{2,} 代表以两个及以上的换行进行拆分,常用在 QA 对文件拆分中。 |
创建 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。 |