名词解释
本文汇总 OpenSearch 向量检索版涉及的核心名词和术语,方便使用产品时快速查阅。
实例相关
名称 | 解释 |
副本数 | 单张表的全量索引数据冗余的份数,可用于查询。 |
网络信息 | 包括专有网络(VPC)、公网访问等信息。 |
API 入口 | SDK 操作实例时使用的访问地址。 |
查询测试 | 通过控制台对实例表数据进行检索的功能入口。 |
变更历史 | 各项运维操作的历史记录和变更进度。 |
指标监控 | 展示查询节点和数据节点的资源指标。 |
报警管理 | 针对实例指标配置报警规则和报警联系人。 |
表相关
表基础信息
名称 | 解释 |
数据分片 | 索引数据存储的数据节点个数,用于提升全量构建速度和单次查询性能。分片数须为不超过 256 的正整数。部分存量实例要求各索引表分片数保持一致,或至少一个索引表分片数为 1、其余索引表分片数一致。 |
数据更新资源数 | 数据更新所用的计算资源数。每个索引默认免费提供 2 个 4 核 8 G 的更新资源,超出免费额度将产生费用。 |
索引重建 | 将数据构建成索引的全量过程,包含两种场景:(1)将 MaxCompute 或 OSS 上的数据构建成索引,产出的索引称为全量索引,索引的版本称为全量版本;(2)不变更数据来源、字段配置、索引结构,重新进行一次全量构建(运维重建)。 |
场景模板
向量检索版创建表时,表基础信息步骤提供多种场景模板,用于预置字段和索引配置,简化建表步骤。
模板名称 | 说明 | 预置向量模型 | 默认向量维度 |
自定义 | 空模板,支持创建文本索引和向量索引,不预置任何字段及索引。 | 无 | 无 |
图片搜索 | 适用于通过文本描述或图片搜索其他图片的场景,模板内预置图片向量相关字段及索引。 | clip | 512 |
文本搜索(需向量化) | 适用于语义分析理解、构建问答式搜索等场景,模板内预置文本向量化相关字段与索引。 | ops-text-embedding-128-000-20231001 | 768 |
文本搜索(已有向量) | 适用于已有向量数据的场景,支持稀疏和稠密混合检索。 | 无 | 128 |
视频搜索 | 适用于视频内容检索场景,模板内预置视频向量相关字段及索引。需要实例支持视频搜索能力且所在地域可用。 | ops-gme-qwen2-vl-2b-instruct | 1536 |
混合搜索 | 支持稀疏和稠密向量的混合检索。 | 无 | 128 |
数据处理
选择图片搜索或文本搜索模板时,需要选择数据处理方式:
已有向量数据:已有自己的向量模型和预生成的向量数据,不需要引擎生成向量,实例仅用于向量查询。
需将原始数据转为向量数据:没有自己的向量模型,需要引擎将文本或图片转换为向量后进行向量检索。
数据源信息
名称 | 解释 |
MaxCompute 数据源 | 全量数据源。原始数据按分区存储于 MaxCompute,增量数据可通过 API 推送。 |
API 数据源 | 实时增量数据源。通过 API 推送进行数据更新。 |
OSS 数据源 | 全量数据源。原始数据按 Bucket 存储于 OSS,增量数据可通过 API 推送。 |
数据湖构建(DLF) | 全量数据源。原始数据迁移到数据湖构建(DLF),增量数据可通过 API 推送。 |
字段和索引
名称 | 解释 |
字段 | 文档的组成单元,包含字段名称和字段内容。 |
多值字段 | 一个字段含有多个独立的值,使用分隔符切分。 |
主键 | 唯一标识一篇文档的字段。主键重复时,新文档会覆盖旧文档。 |
文档 | 可搜索的结构化数据单元,包含一个或多个字段,且必须有主键字段。向量检索版实例依据主键值确定唯一文档。 |
多值分隔符 | 多值字段中各值之间的分隔符,默认使用逗号( |
向量字段 | 存储向量数据的字段,字段类型为多值 FLOAT。 |
需要 embedding 字段 | 存储需要被 Embedding 的原始数据(如文本或图片),字段类型为 STRING 或 TEXT。 |
向量索引的包含字段 | 每个向量索引包含 3 个字段:主键字段(字段配置中唯一的主键字段)、命名空间字段(非必填,用于向量检索分类或过滤)、向量字段(字段配置中唯一的向量字段)。 |
向量维度 | 向量数组的长度,即每个向量包含的数值个数。 |
实时索引 | 实时对向量数据构建的索引,支持数据写入后即时可检索。 |
普通索引 | 非向量索引,包括关键字索引等,用于文本检索和过滤。 |
字段类型
每个字段所属的数据类型,决定了字段可使用的索引类型和属性。向量检索版支持以下字段类型:
字段类型 | 说明 | 支持多值 | 可作为主键 | 可作为向量字段 | 可作为 embedding 字段 |
TEXT | 文本类型,需配置分析器。 | 否 | 否 | 否 | 是 |
STRING | 字符串类型。 | 是 | 是 | 否 | 是 |
INT8、UINT8、INT16、UINT16、INT32、INTEGER、UINT32、INT64、UINT64 | 整数类型,精度各不相同。 | 是 | 是 | 否 | 否 |
FLOAT | 单精度浮点类型。设置为多值时可用作向量字段。 | 是 | 否 | 是 | 否 |
DOUBLE | 双精度浮点类型。 | 是 | 否 | 否 | 否 |
LOCATION、LINE、POLYGON | 地理位置类型。 | 是 | 否 | 否 | 否 |
DATE、TIME、TIMESTAMP | 时间日期类型。 | 否 | 否 | 否 | 否 |
RAW | 原始数据类型,不支持摘要和索引。 | 否 | 否 | 否 | 否 |
OBJECT | JSON 对象类型(仅易用版支持,向量检索版不适用),需配置 Schema。 | 否 | 否 | 否 | 否 |
FLOAT 和 DOUBLE 类型不支持创建普通索引。OBJECT 类型不支持创建索引。
距离类型
向量空间内两个向量距离的度量方式。创建向量索引时需要选择距离类型。
距离类型 | 英文名称 | 说明 |
内积 | InnerProduct | 计算两个向量的内积值,值越大表示越相似。 |
欧氏距离 | SquaredEuclidean | 计算两个向量之间的欧氏距离平方值,值越小表示越相似。为默认距离类型。 |
余弦相似度 | Cosine | 计算两个向量夹角的余弦值,值越大表示越相似。 |
不同的向量索引算法对距离类型的支持有所不同,具体请参见下方向量索引算法表格。
向量索引算法
向量索引算法决定了向量数据的存储结构和检索方式。不同算法适用于不同的数据规模和性能需求,配置入口位于创建表索引结构步骤的向量索引页签。
控制台显示名 | 适用规模 | 场景 | 支持的距离类型 |
FLAT | 适用万级别数据 | 数据准确性高,召回率 100%。 | 内积、欧氏距离、余弦相似度 |
HNSW | 适用千万级别数据规模 | 对数据准确性与查询延迟有严格要求。 | 内积、欧氏距离、余弦相似度 |
HNSW_SQ | 适用十亿级别数据规模 | 对查询耗时与查询性能要求高且对数据准确性要求不严苛。 | 内积、欧氏距离、余弦相似度 |
HNSW_RaBitQ | 适用十亿级别数据规模 | 适合在极低内存占用下处理海量数据,对准确性要求不苛刻。要求向量维度为 64 的倍数。 | 仅欧氏距离 |
CagraHNSW | 适用亿级别数据规模 | 适合 GPU 图索引算法应用,通常配合多 GPU 处理亿级数据。 | 内积、欧氏距离 |
CAGRA | 仅 GPU 实例 | GPU 加速向量检索。 | 内积、欧氏距离 |
IVF_SQ8 | 适用亿级别数据规模 | 对数据准确性与查询延迟要求都不高。 | 内积、欧氏距离、余弦相似度 |
DiskANN | 适用十亿以上级别数据规模 | 对查询延迟要求不严苛且内存占用少。 | 内积、欧氏距离、余弦相似度 |
部分算法受实例版本限制:HNSW_SQ 需要实例支持 QGraph 版本,CAGRA 需要 GPU 版本,HNSW_RaBitQ 需要 RaBitQ 版本。
索引类型
非向量索引(即普通索引)支持以下索引类型,可从其他类型索引页签配置:
索引类型 | 适用字段类型 | 模式 |
PACK | TEXT | 多字段全文检索 |
TEXT | TEXT | 单字段文本索引 |
NUMBER | 整数类型(INT8~UINT64) | 单字段数值索引 |
STRING | STRING | 单字段字符串索引 |
PRIMARYKEY64 | 整数类型、STRING | 64 位主键索引 |
PRIMARYKEY128 | 整数类型、STRING | 128 位主键索引 |
DATE | UINT64、DATE、TIME、TIMESTAMP | 日期索引 |
RANGE | 整数类型(INT8~INT64) | 范围索引 |
SPATIAL | LOCATION、LINE、POLYGON | 空间地理索引 |
数据预处理
对标记为 embedding 的字段,控制台的字段配置步骤提供数据预处理配置,用于将原始数据转换为向量。
数据类型:
类型 | 说明 | 可选的数据来源 |
文本 | 将文本数据转换为向量。 | 无需指定 |
图片 | 将图片数据转换为向量或进行内容解析。 | OSS 对象存储、Base64 编码、DLF-Object Table、URL 地址 |
视频 | 将视频数据进行截帧和向量化处理。 | OSS 对象存储 |
融合向量 | 将多个字段的数据融合为一个向量。 | 无需指定 |
处理模板:
处理模板 | 说明 |
稠密向量化 | 将文本转换为稠密向量。 |
稠密+稀疏向量化 | 将文本同时转换为稠密向量和稀疏向量,用于混合检索。 |
图片向量化 | 将图片转换为向量。 |
图片内容解析 | 通过 OCR 或视觉语言模型将图片内容解析为文本。 |
图片内容解析+图片向量化 | 将图片同时进行内容解析和向量化。 |
视频处理 | 将视频截帧后通过多模态模型转换为向量。 |
融合向量 | 将多个字段的数据融合为一个向量。 |
分析器
分析器(Analyzer)用于对 TEXT 类型字段进行分词处理。创建 TEXT 类型字段时需要选择分析器。向量检索版提供以下分析器:
语言 | 可选分析器 |
中文 | chn_standard、chn_ecommerce_general、chn_esports_general、chn_edu_question、chn_community_wenyu、chn_community_it、chn_single、chn_scene_name、chn_ecommerce |
英文 | eng_standard、eng_nostem、en_min、en_ecommerce_general |
通用 | simple、fuzzy、full_pinyin、first_letter |
泰语 | th_standard、th_ecommerce |
越南语 | vn_standard |
日语 | jp_ecommerce、jp_standard |
韩语 | kr_ecommerce、kr_standard |
运维相关
名称 | 解释 |
停止使用/恢复使用 | 停止或重新启用某张表。停止使用后,该表不再参与查询。 |
FSM 触发和执行机制
FSM(有限状态机,Finite State Machine)是 OpenSearch 向量检索版用于管理实例和索引状态转移的机制。以下为各变更类型的触发和执行规则。
变更类型 | 允许重复触发 | 说明 |
ha3_biz_apend | 否 | 由系统自动触发,有且仅有一个。该变更直到实例正确添加索引表并成功构建索引后才会结束。 |
update_biz_depend_index_fsm | 否 | 由系统自动触发,有且仅有一个。该变更直到索引表成功构建索引后才会自动结束。 |
multi_biz_activate | 否 | 可理解为实例初始化。一个实例有且仅有一个,该变更直到实例正确添加索引表并成功构建索引后才会自动结束。 |
自动触发全量 | 是 | 检测到新的数据分区后自动执行。最新的变更和历史变更并存。 |
手动触发全量 | 是 | 由用户手动触发。最新的变更和历史变更并存。 |
在线资源 | 是 | 针对同一个 Zone 的情况下,最新的变更执行前会终止所有旧的变更。 |
重复触发:是否允许多次触发该变更类型。