Agent 工程
Milvus 心智模型
把新术语映射到熟悉的“表、列、行”,再补上向量索引与内存加载两个关键概念。
核心对象
| Milvus | 可类比为 | 职责 |
|---|---|---|
| Collection | 表 | 一组具有同一 Schema 的 Entity |
| Schema / Field | 表结构 / 列 | 约束主键、向量维数与标量类型 |
| Entity | 行 | 一条业务对象;主键必须能稳定定位 |
| Index | 索引 | 加速向量近邻搜索 |
一条知识库 Entity
{
"id": 42, # 主键:用于更新、删除、追踪
"vector": [0.12, ...], # 向量字段:用于 Search
"text": "退款通常 3 天到账",
"category": "refund", # 标量字段:用于 Filter / Query
"active": true
}
Search、Query、Load 各做什么
Search
输入查询向量,按距离返回 Top-K;可附加 filter='active == true'。答案是“语义上谁最像”。
Query
不传向量,按主键或标量表达式取数据。答案是“哪些记录满足条件”。
Load
搜索前把 collection 的索引与数据准备到查询节点。创建成功不代表已经可搜,资源不足时也要规划释放。
索引选型不是“越高级越好”
| Index | 优势 | 代价 / 场景 |
|---|---|---|
| FLAT | 精确、无需训练 | 全量比较;小数据集或 Recall 基线 |
| IVF_FLAT | 通过聚类缩小候选 | 需调 nlist / nprobe;数据量较大、成本可控 |
| HNSW | 高 Recall、低延迟 | 占更多内存且建索引较慢;在线检索常用 |
生命周期:定义 Schema → 创建 Collection → 写 Entity → 建 Index → Load → Search / Query。主键是业务追踪锚点,向量字段负责相似度,标量字段负责权限、租户、时间和状态过滤。
收获 Search 是“按含义找”,Query 是“按条件取”;Index 解决速度,Load 决定是否进入可查询状态。