AI 與 LLM檢索

向量相似度搜尋

依語意找出最接近的項目,可依標籤篩選,而且就在存放這些項目本身的同一個引擎內。

已建立索引
HNSW
平均搜尋複雜度
O(log N)
種距離度量
3
步驟 1 / 6
建立索引

維度與度量在每個索引中固定。需要時可調整 HNSW 參數。

範例工作階段playing
# 建立索引
hotkv> VSIM.CREATEINDEX products 3 METRIC COSINE
OK

以真實 HotKV 指令與範例回覆呈現的動畫導覽。點擊任一步驟即可跳到該步驟。 指令與回覆維持英文,與您在 HotKV 中輸入及看到的完全一致。

問題

語意搜尋、「類似這個」推薦與去重,說到底都是同一個問題:哪些已儲存的項目最接近這一個?要回答它,通常得在主要儲存旁邊另設專用的向量資料庫,而且每次商品更新都得寫入兩處。

HotKV 如何處理

HotKV 把 HNSW 向量索引放在引擎裡。商品資料存放在一般的鍵中,向量則以相同的鍵名建立索引,而這些鍵上的標籤能讓搜尋停留在某個分類或某個租戶之內。一條寫入路徑,一套系統要維運。

逐步說明

逐個指令看看發生了什麼事

  1. 01

    建立索引

    維度與度量在每個索引中固定。需要時可調整 HNSW 參數。

    VSIM.CREATEINDEX products 3 METRIC COSINE
  2. 02

    儲存商品

    商品資料是一般的雜湊,使用索引將採用的鍵名。

    HSET sku:1 name "Trail runner" price 89
  3. 03

    為它加上標籤

    鍵上的標籤讓向量搜尋可以停留在某個分類之內。

    TAG.SET sku:1 shoes running
  4. 04

    為它的向量建立索引

    向量以相同的鍵名放進索引。

    VSIM.SET products sku:1 0.12 0.80 0.31
  5. 05

    依語意搜尋,限定在某個標籤內

    查詢文字會被嵌入,帶有該標籤且最接近的商品會連同距離一起傳回。

    VSIM.SEARCH products 3 0.10 0.82 0.29 FILTER shoes
  6. 06

    取得要顯示的內容

    結果是鍵名,因此商品資料就在同一台伺服器上,一次讀取即可取得。

    HGETALL sku:1
適用之處

真實世界的情境

電子商務搜尋

購物者用自己的話輸入想要的東西。系統依語意搜尋商品目錄,並篩選到他們所在的分類與商店。

重複偵測

新的客服工單或刊登內容會與既有的比對,近乎重複的項目會在人工看到之前先合併。

圖片與媒體相似度

圖片模型產生的嵌入,可以在整個素材庫中找出視覺上相似的照片或影片片段。

內建

您能獲得什麼

HNSW 索引

近似最近鄰搜尋,在大型索引上仍保持快速,平均為 O(log N)。

VSIM.CREATEINDEXVSIM.SEARCH

三種度量

餘弦、L2 與內積,依索引選擇。

METRIC

標籤篩選

將搜尋限制在帶有所有指定標籤的鍵。

TAG.SETFILTER

持久化

索引會和其他資料一樣,保存在快照與 AOF 重寫之中。

VSIM.INFO

常見問題

HotKV 會產生嵌入嗎?

不會。請使用您偏好的嵌入模型建立向量,並以 VSIM.SET 儲存。

這和 RAG 管線有何不同?

VSIM 是通用的向量索引。RAG 管線建立在相同的概念上,並為文件加入分塊、中繼資料與混合關鍵字搜尋。

哪些方案包含它?

向量搜尋與標籤屬於核心指令,在每個方案上都能使用,不需要授權。

相關使用情境

在您自己的工作負載上試試看

HotKV 支援 Redis 協定,因此您可以將現有的用戶端指向它,並執行這些相同的指令。