閱界資訊

查得到,也要搬得走:Zvec 全量遍歷的設計與實現

閱閱界編輯部1閱讀6分鐘

《查得到,也要搬得走:Zvec 全量遍歷的設計與實現》這篇在博客園熱度很高,講的正是大家天天碰到的事。下面幫你把要點捋出來,結尾有能直接抄的結論。

Zvec v0.7.0 引入 DocIterator:流式讀出整個集合。迭代器在創建時定格一份隔離視圖,遍歷期間可進行查詢、寫入和刪除,且不影響一致性;文檔按窗口物化,內存開銷與集合的大小無關;可以只取部分字段、跳過向量。提供多種編程語言的 SDK 接口。Zvec Studio 則把它包裝成界面化的數據導出,並配套了導入與整庫遷移。 在 Zvec 中,可以利用向量高效檢索相似數據,也可以結合標量條件過濾結果,但如果要將已經存入的數據完整導出,應該怎麼做? 在 v0.7.0 之前,Zvec 缺少全量遍歷接口, fetch() / query() 這類檢索接口也無法保證覆蓋整個集合。

Zvec v0.7.0 引入 DocIterator:流式讀出整個集合。迭代器在創建時定格一份隔離視圖,遍歷期間可進行查詢、寫入和刪除,且不影響一致性;文檔按窗口物化,內存開銷與集合的大小無關;可以只取部分字段、跳過向量。提供多種編程語言的 SDK 接口。Zvec Studio 則把它包裝成界面化的數據導出,並配套了導入與整庫遷移。 在 Zvec 中,可以利用向量高效檢索相似數據,也可以結合標量條件過濾結果,但如果要將已經存入的數據完整導出,應該怎麼做? 在 v0.7.0 之前,Zvec 缺少全量遍歷接口, fetch() / query() 這類檢索接口也無法保證覆蓋整個集合。新增的 DocIterator 補齊了這一能力,它面向的是與“檢索”不同的另一類需求:不關心相似度、不關心排序,只要求 完整、穩定、低開銷地把每條數據讀出來 。

Zvec v0.7.0 引入 DocIterator:流式讀出整個集合。迭代器在創建時定格一份隔離視圖,遍歷期間可進行查詢、寫入和刪除,且不影響一致性;文檔按窗口物化,內存開銷與集合的大小無關;可以只取部分字段、跳過向量。提供多種編程語言的 SDK 接口。Zvec Studio 則把它包裝成界面化的數據導出,並配套了導入與整庫遷移。 在 Zvec 中,可以利用向量高效檢索相似數據,也可以結合標量條件過濾結果,但如果要將已經存入的數據完整導出,應該怎麼做? 在 v0.7.0 之前,Zvec 缺少全量遍歷接口, fetch() / query() 這類檢索接口也無法保證覆蓋整個集合。新增的 DocIterator 補齊了這一能力,它面向的是與“檢索”不同的另一類需求:不關心相似度、不關心排序,只要求 完整、穩定、低開銷地把每條數據讀出來 。這類需求在實際使用中並不少見: 幾臺機器分別跑完 embedding,要把結果合併成一個集合; 給 Agent 的長期記憶做離線整理、去重、重新分片; 導出一份數據集,交給別的語言、別的工具處理; 遷移或備份,在另一臺機器上原樣重建一個集合。

Zvec v0.7.0 引入 DocIterator:流式讀出整個集合。迭代器在創建時定格一份隔離視圖,遍歷期間可進行查詢、寫入和刪除,且不影響一致性;文檔按窗口物化,內存開銷與集合的大小無關;可以只取部分字段、跳過向量。提供多種編程語言的 SDK 接口。Zvec Studio 則把它包裝成界面化的數據導出,並配套了導入與整庫遷移。 在 Zvec 中,可以利用向量高效檢索相似數據,也可以結合標量條件過濾結果,但如果要將已經存入的數據完整導出,應該怎麼做? 在 v0.7.0 之前,Zvec 缺少全量遍歷接口, fetch() / query() 這類檢索接口也無法保證覆蓋整個集合。新增的 DocIterator 補齊了這一能力,它面向的是與“檢索”不同的另一類需求:不關心相似度、不關心排序,只要求 完整、穩定、低開銷地把每條數據讀出來 。這類需求在實際使用中並不少見: 幾臺機器分別跑完 embedding,要把結果合併成一個集合; 給 Agent 的長期記憶做離線整理、去重、重新分片; 導出一份數據集,交給別的語言、別的工具處理; 遷移或備份,在另一臺機器上原樣重建一個集合。 本文講清楚三件事:爲什麼原有接口行不通、DocIterator 怎麼用、以及它內部是怎麼在“恆定內存”和“一致視圖”之間做設計取捨的。

Zvec v0.7.0 引入 DocIterator:流式讀出整個集合。迭代器在創建時定格一份隔離視圖,遍歷期間可進行查詢、寫入和刪除,且不影響一致性;文檔按窗口物化,內存開銷與集合的大小無關;可以只取部分字段、跳過向量。提供多種編程語言的 SDK 接口。Zvec Studio 則把它包裝成界面化的數據導出,並配套了導入與整庫遷移。 在 Zvec 中,可以利用向量高效檢索相似數據,也可以結合標量條件過濾結果,但如果要將已經存入的數據完整導出,應該怎麼做? 在 v0.7.0 之前,Zvec 缺少全量遍歷接口, fetch() / query() 這類檢索接口也無法保證覆蓋整個集合。新增的 DocIterator 補齊了這一能力,它面向的是與“檢索”不同的另一類需求:不關心相似度、不關心排序,只要求 完整、穩定、低開銷地把每條數據讀出來 。這類需求在實際使用中並不少見: 幾臺機器分別跑完 embedding,要把結果合併成一個集合; 給 Agent 的長期記憶做離線整理、去重、重新分片; 導出一份數據集,交給別的語言、別的工具處理; 遷移或備份,在另一臺機器上原樣重建一個集合。 本文講清楚三件事:爲什麼原有接口行不通、DocIterator 怎麼用、以及它內部是怎麼在“恆定內存”和“一致視圖”之間做設計取捨的。 一、爲什麼原有接口行不通 在有 DocIterator 之前,想遍歷整個集合,有三條看起來可行的路。

讀完別停:把最觸動你的一條記下來,這周就用上。能落地的閱讀纔算數,歡迎回來聊聊你的實踐結果。 來源|博客園《查得到,也要搬得走:Zvec 全量遍歷的設計與實現》,https://www.cnblogs.com/DashVector/p/22982173.html

工具方法工具实践

評論(0)

暫無評論,來搶第一條。