购买实例
购买实例可参考购买OpenSearch向量检索版实例。
配置集群
新购买的实例,在其详情页中,实例状态为“待配置”,并且会自动部署一个与购买的查询节点和数据节点的个数及规格一致的空实例,之后需要为该实例配置表信息>数据同步>字段配置>索引结构,之后等待索引重建完成即可正常搜索。
1. 表基础信息
表管理点击“表添加",输入表名称,设置数据分片数和数据更新资源数,场景模板选择:向量(文本语义搜索),数据处理选择:需将原始数据转为向量数据,点击下一步:
配置说明:
表名称:可自定义
数据分片数:分片数设置时,请填写不超过256的正整数, 用于提升全量构建速度、单次查询性能。(部分存量实例,仍需各索引表分片数保持一致;或至少一个索引表分片数为1,其余索引表分片数一致)
数据更新资源数:数据更新所用资源数,每个索引默认免费提供2个4核8G的更新资源,超出免费额度的资源将产生费用,详情可参考向量检索版计费概述
场景模板:向量检索版内置了3种模板可供用户选择:通用、向量-图片搜索、向量-文本语义模板
2. 数据同步
配置数据源(目前支持的数据源有MaxCompute数据源和API推送数据源),这里以MaxCompute数据源为例,数据源类型选择MaxCompute,设置Project、AccesskeyID、AccesskeySecret、Table、分组键partition、时间戳,可按需选择是否开启“自动索引重建”选择完成之后可选择校验,通过后可点击下一步:
MaxCompute数据源文档参考
API 数据源文档参考
OSS数据源文档参考
3. 字段配置
OpenSearch会根据您选择的场景模板,预置相关字段,并会将全量数据来源中的字段(如有),自动导入字段列表中:
设置字段:‘向量文本搜索’模板必须至少包含4个预置字段,id(主键)、vector_source_text(向需要文本向量化的文本字段)、cate_id(类目字段)、vector(存储文本向量的字段),平台默认会生成:
字段配置说明:
必选字段:主键字段和向量字段,主键字段为int或string类型并且需要勾选主键按钮,向量字段为float类型并且需要勾选向量字段按钮;
向量字段默认为多值的float类型,多值分隔符默认使用ha3分割符^] 进行切分(其对应utf编码为\x1D),也可以输入自定义多值分隔符
文本向量化的字段需要勾选“需embedding字段”
要求vector_source_text的数据,长度不得超过128字节,如果超过会截取前128字节做向量预测。
使用向量检索,在定义字段时有位置要求,需要按照主键字段、命名空间字段(非必要)、向量字段的顺序创建。(如上图所示)
当数据中缺少字段或字段为空时,系统将自动补充默认值,数字类型默认补0,STRING类型默认补空字符串,支持自定义默认值
需embedding字段配置说明:
向量化模型:目前支持以下几种模型:
ops-text-embedding-000,短文本转向量模型,维度固定为768。
ops-text-embedding-en-000:英文短文本转向量模型,维度固定768。
ops-text-embedding-1024-000-20231001:增强版中文转向量 1024
ops-text-embedding-512-000-20231001:增强版中文转向量 512
ops-text-embedding-128-000-20231001:增强版中文转向量 128
ops-text-embedding-512-en-000-20231001:增强版英文转向量 512
ops-text-embedding-128-en-000-20231001:增强版英文转向量 128
数据类型:text,针对文本类型,默认不可修改。
注:文本数据长度不得超过 xxx token,如果超过长度限制,将会截取前 xxx token 做向量预测;一个汉字、一个英文单词、一个标点符号可被估算为 1 token。
4. 索引结构
4.1. 向量索引
OpenSearch会对主键与向量字段自动构建索引,索引名与字段名相同,只需要在控制台配置向量索引:
主键字段、向量字段必须填写,命名空间字段非必填,可以为空。
命名空间字段:实例引擎版本为vetcor service 1.0.2及以下版本,namespace标签字段不支持string格式类型;实例引擎版本为vetcor service 1.0.2及以上版本,无此限制。
高级配置,系统会自动填充,向量维度固定为768,其他参数不建议修改:
5. 确认创建
索引配置完成后,点击确认创建。
6. 变更历史
实例管理-变更历史-数据源变更,可以看到创建表及新增索引及全量的所有FSM,全部完成之后引擎搭建完成,可以开始查询测试:
7. 查询测试
查询示例:可参考预测查询。
结果展示:
{
"totalCount": 5,
"result": [
{
"id": 5,
"score": 1.103209137916565
},
{
"id": 3,
"score": 1.1278988122940064
},
{
"id": 2,
"score": 1.1326735019683838
}
],
"totalTime": 242.615
}
result 中 记录着返回的结果。