体验语义索引
本教程将引导您快速上手 seekdb 语义索引,帮助您理解语义索引的实际应用,并在几分钟内体验语义索引的强大功能:无需手动转换为向量,直接存储文本即可实现语义搜索。
概述
语义索引(Hybrid Vector Index)指可以自动将文本转换为向量并建立索引的向量索引,是 seekdb 提供的一项强大功能,它实现了向量概念对用户的透明化。与不使用语义索引的向量索引相比,语义索引极大地简化了使用流程。
- 不使用语义索引的向量索引流程:
文本 → 手动调用 `AI_EMBED` 函数生成向量 → 插入向量 → 使用向量搜索 - 语义索引流程:
文本 → 直接插入 → 直接使用文本搜索
seekdb 会在内部自动将文本转换为向量并建立索引,搜索时也只需提供原始文本,系统会自动进行嵌入并搜索向量索引,从而显著提升了使用的便捷性。
前提条件
- 联系管理员获取相应的数据库连接串,然后执行以下命令连接到数据库:
# host: seekdb 数据库连接 IP。
# port: seekdb 数据库连接端口。
# database_name: 需要访问的数据库名称。
# user_name: 数据库用户名。
# password: 数据库密码。
obclient -h$host -P$port -u$user_name -p$password -D$database_name - 确保你已拥有 AI 函数服务相关权限,并确保数据库中已使用
CREATE_AI_MODEL和CREATE_AI_MODEL_ENDPOINT程序注册嵌入模型(Embedding Model):CALL DBMS_AI_SERVICE.DROP_AI_MODEL ('ob_embed');
CALL DBMS_AI_SERVICE.DROP_AI_MODEL_ENDPOINT ('ob_embed_endpoint');
CALL DBMS_AI_SERVICE.CREATE_AI_MODEL(
'ob_embed', '{
"type": "dense_embedding",
"model_name": "BAAI/bge-m3"
}');
CALL DBMS_AI_SERVICE.CREATE_AI_MODEL_ENDPOINT (
'ob_embed_endpoint', '{
"ai_model_name": "ob_embed",
"url": "https://api.siliconflow.cn/v1/embeddings",
-- 需替换为实际的 access_key
"access_key": "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxx",
"provider": "siliconflow"
}');
信息
语义索引功能当前版本仅支持 HNSW/HNSW_BQ 索引类型。
步骤一:创建语义索引
语义索引支持建表时创建和后建