Skip to content

存储实例管理

存储实例是 RAG 知识库的底层基础设施。每个知识库需要绑定一个向量存储实例用于存放文档向量,如果开启混合搜索还需要绑定一个搜索引擎实例用于 BM25 全文检索。

实例分类

存储实例分为两大类:

分类编码说明
向量存储VECTOR_STORE存储文档向量,支持向量相似度检索
搜索引擎SEARCH_ENGINE存储文档全文,支持 BM25 关键词检索

页面顶部使用 Segment Tab 切换两个分类,每个分类独立展示其实例列表。

支持的存储类型

向量存储(VECTOR_STORE)

类型编码说明
PgVectorPG_VECTORPostgreSQL 向量扩展,利用已有 PG 数据库,部署成本最低
MilvusMILVUS专业分布式向量数据库,支持亿级向量,适合大规模生产
ElasticsearchELASTICSEARCHES 8.x+ 支持向量检索,同时兼顾全文搜索

搜索引擎(SEARCH_ENGINE)

类型编码说明
ElasticsearchELASTICSEARCH业界主流全文搜索引擎,BM25 检索能力强大
PG FulltextPG_FULLTEXT基于 PostgreSQL 的全文搜索,轻量级方案(开发中)

提示: Elasticsearch 同时支持向量存储和搜索引擎两种分类。如果选用 ES 作为向量存储,可以用同一套 ES 集群同时充当搜索引擎,简化部署架构。

实例管理

创建实例

点击「新建实例」按钮,在嵌套抽屉中填写以下信息:

字段必填说明
实例名称自定义名称,便于识别
存储类型根据当前分类自动过滤可选类型
连接配置根据存储类型动态渲染不同的配置字段
设为默认新建知识库时自动选用该实例

连接配置

不同存储类型需要配置不同的连接参数:

PgVector 配置

参数类型默认值说明
hoststringlocalhostPostgreSQL 主机地址
portnumber5432端口号
databasestringsnail_ai数据库名称
usernamestring-数据库用户名
passwordpassword-数据库密码
sslEnabledbooleanfalse是否启用 SSL 连接

前置条件: PostgreSQL 需要安装 pgvector 扩展:

sql
CREATE EXTENSION IF NOT EXISTS vector;

Milvus 配置

参数类型默认值说明
hoststringlocalhostMilvus 服务地址
portnumber19530gRPC 端口号
tokenpassword-认证 Token(Milvus Cloud 或启用认证时需要)
databasestringdefault数据库名称

Elasticsearch 配置

参数类型默认值说明
hoststringlocalhostES 节点地址
portnumber9200HTTP 端口号
schemeselecthttp协议类型:httphttps
usernamestring-用户名(开启认证时需要)
passwordpassword-密码

版本要求: Elasticsearch 8.x 以上才支持 kNN 向量检索功能。

PG Fulltext 配置

参数类型默认值说明
hoststringlocalhostPostgreSQL 主机地址
portnumber5432端口号
databasestringsnail_ai数据库名称
usernamestring-数据库用户名
passwordpassword-数据库密码

连接测试

填写连接配置后,点击「测试连接」按钮验证配置是否正确:

POST /store-instance/test
Content-Type: application/json

{
  "type": "PG_VECTOR",
  "config": {
    "host": "localhost",
    "port": 5432,
    "database": "snail_ai",
    "username": "postgres",
    "password": "your_password",
    "sslEnabled": false
  }
}
结果说明
连接成功配置正确,可以保存实例
连接失败检查网络连通性、地址端口、认证信息是否正确

建议: 每次创建或修改实例配置后,务必先进行连接测试再保存。

编辑实例

在实例列表中点击「编辑」按钮,即可在抽屉中修改实例配置。修改后的连接参数会在下次使用时生效。

注意: 如果已有知识库正在使用该实例,修改连接配置可能影响正在进行的文档处理任务。

删除实例

在实例列表中点击「删除」按钮并确认:

DELETE /store-instance/{id}

注意: 如果有知识库正在使用该实例,删除前需要先将相关知识库切换到其他实例。

默认实例

每个分类下可以设置一个默认实例。创建知识库时,系统会自动填充默认的向量存储和搜索引擎实例,减少重复选择。

在创建或编辑实例时,开启「设为默认」开关即可:

字段说明
isDefault设为 true 后,该实例成为所属分类的默认实例。同一分类下只有一个默认实例

实例状态

状态编码说明
启用ACTIVE正常使用状态
停用INACTIVE已停用,不可被新知识库选用

部署架构建议

轻量部署(个人/小团队)

使用 PostgreSQL + pgvector 扩展,一个数据库同时承担业务数据和向量存储,部署最简单。

标准部署(中小企业)

PgVector 负责向量存储,Elasticsearch 负责 BM25 全文检索,开启混合搜索获得最佳检索效果。

大规模部署(大型企业)

Milvus 集群处理亿级向量,Elasticsearch 集群承担全文检索,适合大数据量场景。

API 接口汇总

接口方法说明
/store-instanceGET获取实例列表,支持 category 参数过滤
/store-instance/pageGET分页查询实例列表
/store-instance/{id}GET获取实例详情
/store-instancePOST创建实例
/store-instance/{id}PUT更新实例
/store-instance/{id}DELETE删除实例
/store-instance/testPOST测试连接

创建实例请求示例

json
{
  "name": "生产环境 PgVector",
  "category": 1,
  "type": 1,
  "config": {
    "host": "pg.example.com",
    "port": 5432,
    "database": "snail_ai",
    "username": "postgres",
    "password": "your_password",
    "sslEnabled": true
  },
  "isDefault": true
}

注意: API 请求中 categorytype 使用数字编码:

字段数字文本
category1VECTOR_STORE
category2SEARCH_ENGINE
type1PG_VECTOR
type2MILVUS
type3ELASTICSEARCH
type4PG_FULLTEXT

Apache 2.0 Licensed