Milvus怎麼用 開源向量資料庫部署教程
更新時間:2026-10-16 15:34:06 釋出時間:8天前 閱讀:27 views次Milvus是一個開源的向量資料庫,專門用來儲存和搜尋向量資料,是做AI知識庫和推薦系統的核心元件。它把文字、圖片等內容經過模型轉換得到的數字向量儲存起來,再按相似度找出最相關的資料。下面用Docker Compose啟動服務,並透過Python完成建集合、寫入和檢索,適合先在本機跑通流程。正式使用前,記得根據機器資源、資料規模和網路環境調整部署方式。
第一步:安裝啟動Milvus
先準備一臺安裝了Docker和Docker Compose的Linux機器,並確認磁碟空間充足。進入一個專門存放配置和資料的目錄,下載Milvus官方提供的Compose配置檔案:wget https://github.com/milvus-io/milvus/releases/download/v3.0.2/milvus-standalone-docker-compose.yaml -O docker-compose.yaml。配置檔案會定義Milvus及其依賴服務,建議從官方文件獲取與你計劃使用版本相匹配的檔案,避免新舊配置混用。
檔案下載好後,在當前目錄執行docker compose up -d。首次啟動需要拉取映像,網路較慢時耐心等待;命令結束後執行docker compose ps檢視容器狀態。服務正常執行時,Milvus Standalone會監聽本機19530埠,WebUI通常可透過http://127.0.0.1:9091/webui/訪問。伺服器部署時,別把管理埠直接暴露到公網,優先使用防火牆限制訪問範圍。
如果容器沒有正常啟動,先執行docker compose logs檢視報錯,再檢查Docker是否執行、埠是否被其他程式佔用,以及機器資源是否夠用。啟動成功後,Compose生成的卷或當前目錄中的資料目錄負責持久化;不要為了排錯隨手刪除它們,否則可能連同已有資料一起清掉。需要停止服務時可執行docker compose down,但操作前確認資料目錄仍保留。
第二步:連線並建立集合
在Python環境安裝客戶端:pip install -U pymilvus。建立Python指令碼後,匯入MilvusClient,並連線剛才啟動的本機服務:client = MilvusClient(uri=”http://localhost:19530″, token=”root:Milvus”)。如果服務不在本機,把localhost換成伺服器地址;連線失敗時檢查網路、防火牆和埠對映。使用者名稱或令牌應以實際部署配置為準,生產環境不要把憑據直接寫進公開程式碼。
接著建立集合,也就是存放向量和相關欄位的邏輯容器,可以把它理解成一張專門用於向量檢索的表。示例呼叫client.create_collection(collection_name=”kb_demo”, dimension=4),其中dimension必須與嵌入模型輸出的向量維度完全一致。這裡用4維只是為了演示;實際專案要查清所用模型的輸出維度,並提前設計主鍵、文字欄位、後設資料欄位以及相似度指標。
寫入向量資料
先準備幾條示例資料,每條資料包含唯一整數id、向量欄位和原始文字,例如向量可寫成[0.12, 0.34, 0.56, 0.78]。真實業務裡不要隨便編造向量,應把每段文字交給嵌入模型生成向量;同一集合中的向量維度要一致,向量值也應保持為數值列表。文字和分類標籤等資訊可以作為普通欄位儲存,方便檢索後直接展示結果。
把記錄組織成列表後呼叫client.insert(collection_name=”kb_demo”, data=rows)寫入。寫入前確保每條記錄的id不衝突,並檢查向量、文字和後設資料欄位名稱符合集合定義。執行後留意返回的插入數量或主鍵,必要時用查詢介面抽樣核對。資料量較大時,可分批寫入並記錄批次進度;重跑指令碼前要考慮重複資料問題,避免無意中反覆插入同一批內容。
第三步:相似度檢索
檢索的關鍵是把使用者問題也轉換成與庫內向量同源、同維度的查詢向量,然後呼叫client.search(collection_name=”kb_demo”, data=[query_vector], limit=3, output_fields=[“text”])。limit控制返回條數,output_fields指定需要帶回的欄位。返回結果通常會包含命中記錄的id、距離分數和文字等資訊;不同距離指標的分數含義不完全相同,排序和閾值應結合當前指標解釋。
拿到結果後,可以把最相關的文字展示給使用者,也可以將其作為上下文交給大語言模型生成回答,這就是常見知識庫問答流程的一部分。若結果不理想,先檢查查詢向量和入庫向量是否由同一模型產生,再檢查文字切分長度、向量維度、集合指標與limit設定。知識庫更新時及時刪除或更新舊記錄,並定期備份資料;上線前還要用真實問題評估召回質量和響應速度。
如果不想自行維護伺服器,也可以瞭解國內雲上替代或託管方案,例如火山引擎相關服務;選擇時重點比較相容介面、計費方式、資料遷移和運維能力。潤滅也整理了相關入口:volcengine.cgref.cn。無論用自建Milvus還是雲服務,都建議先用小規模樣本驗證完整鏈路,再逐步擴容,並確認服務條款、資料保留和備份策略符合專案需求。