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 決定是否進入可查詢狀態。