基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
Agent 混合搜索场景概述
更新时间:2026-08-13 19:27:47
说明
本功能在当前版本为实验特性。
Agent 混合搜索场景面向 AI Agent 应用中的记忆、知识库与多用户空间搜索需求:每个用户、每个 Agent、每个会话往往需要独立的数据隔离域,规模可达海量。若为每个隔离域创建独立物理表,元数据与资源开销会随数量线性放大。
本场景基于 OceanBase Database AI 的逻辑表(Logical Table)能力,通过 pyseekdb SDK(use_namespace=True)将多个 Namespace 的数据共享底层存储、在逻辑上完成隔离。开发者看到的是独立的 Namespace,无需为每个隔离域创建独立物理表,并在同一套对象模型上完成向量搜索、全文搜索与混合搜索。通过 pyseekdb SDK 基于 Namespace 的用户接口,可以实现多个 Namespace 的数据共享底层存储,在逻辑上完成隔离。
核心对象模型
Client
└── Collection
└── Namespace
└── Record
| 对象 | 说明 |
|---|---|
| Client | 连接 OceanBase 的入口,管理 Collection 的创建与获取。 |
| Collection | 顶层容器,决定了向量维度、索引类型、分词器等 Schema 配置。一个 Collection 可容纳海量 Namespace。Collection 本身不直接承载数据操作。 |
| Namespace | 数据隔离的基本单元。每个 Namespace 有独立的 namespace_id,数据在存储层按 Namespace 隔离。所有 DML 和 DQL 操作都在 Namespace 上执行。 |
| Record | 逻辑概念,表示一条数据记录,由四元组构成,详见下表。 |
Record 四元组具体如下:
| 字段 | 类型 | 说明 |
|---|---|---|
| id | string | 业务主键,在 Namespace 内唯一 |
| document | string | 文本内容,用于全文搜索和自动向量化 |
| embedding | list[float] | 稠密向量,用于向量相似度搜索 |
| metadata | dictionary | 结构化元数据(JSON),用于条件过滤 |
核心能力
| 能力 | 说明 |
|---|---|
| 大规模用户空间隔离 | 单个 Collection 下可创建海量 Namespace,每个 Namespace 拥有独立数据空间。 |
| 向量搜索 | 基于 IVF 索引的高性能近似最近邻搜索,支持 l2 / cosine / inner_product 距离。 |
| 全文搜索 | 支持 IK / Space / Ngram / Ngram2 / Beng 多种分词器的全文索引。 |
| 混合搜索 | 向量 + 全文多路召回路径,RRF 融合排序。 |
| 在线索引维护 | SPFresh 机制保持 IVF 索引写入后召回率不衰减。 |
| 自动嵌入 | 配置嵌入函数后,写入文本自动生成稠密向量。 |
pyseekdb SDK 工作模式
pyseekdb 支持两种工作模式,通过 create_collection 的 use_namespace 参数切换:
| 对比项 | use_namespace=False(默认) | use_namespace=True |
|---|---|---|
| 适用场景 | 单用户空间、小规模数据 | 多用户空间、大规模数据隔离 |
| 数据隔离 | 无 Namespace 概念,数据直接在 Collection 级别操作 | 通过 Namespace 隔离,不同 Namespace 数据互不可见 |
| 预热 | 不支持 | 远程共享存储部署支持 namespace.prewarm() 接口 |
| 冷热分离 | 不支持 | 远程共享存储部署支持热 Namespace 自动过期 |
| 数据操作入口 | collection.add() / collection.query() |
namespace.add() / namespace.query() |
补充说明如下:
- 本场景使用
use_namespace=True。如果只有一份数据、无需多用户空间隔离,可用默认模式(use_namespace=False)。 - 当前 SDK 不支持弱读;Namespace 模式下读写按数据库默认强一致路径使用。
适用场景
| 落地方式 | 说明 | Namespace 粒度建议 |
|---|---|---|
| Agent Memory | 对话记忆存储与语义搜索,存储历史消息、上下文和记忆 | 每个 Agent 实例一个 Namespace |
| RAG 知识库 | 文档切片后的向量 + 全文混合搜索 | 每个知识库一个 Namespace |
| Codebase 搜索 | 代码片段的语义搜索(如 Cursor Codebase) | 每个代码仓库一个 Namespace |
| 多用户空间 SaaS | 用户空间间数据严格隔离,访问限流,共享底层物理存储 | 每个用户空间一个 Namespace |