[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-redis-vector-search-quick-start-guide-zh":3,"article-related-redis-vector-search-quick-start-guide-zh":28,"series-tools-4aa53f25-2206-4632-b428-84fc839b9794":85},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":11,"views":25,"created_at":26,"published_at":27,"topic_cluster_id":11},"4aa53f25-2206-4632-b428-84fc839b9794","redis-vector-search-quick-start-guide-zh","Redis 向量搜尋快速上手","\u003Cp>Redis 早就不只拿來快取。它現在也能存向量、放 metadata，還能直接做語意查詢。講白了，就是把搜尋、資料、速度放在同一個系統裡。\u003C\u002Fp>\u003Cp>這篇 quick start 的重點很實際。你可以把文件轉成 embeddings，再丟進 Redis 做 KNN 查詢。整條流程從資料寫入到查詢結果，幾乎都在同一套工具鏈內完成。\u003C\u002Fp>\u003Cp>如果你的服務本來就靠 Redis 撐 session、queue 或排行榜，這招很值得看。少一個外部系統，通常就少一些維運麻煩。說真的，對開發者來說這很有感。\u003C\u002Fp>\u003Ch2>Redis 在這篇指南到底做了什麼\u003C\u002Fh2>\u003Cp>這份教學的流程很直白。先載入文件，再產生 embeddings，接著寫進 Redis，然後建立索引，最後跑查詢。整個路徑不是紙上談兵，是可以直接跑的範例。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1776126124430-awwk.png\" alt=\"Redis 向量搜尋快速上手\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>它用的是 \u003Ca href=\"https:\u002F\u002Fredis.io\u002Fdocs\u002Flatest\u002Fdevelop\u002Finteract\u002Fsearch-and-query\u002Fvector-search\u002F\" target=\"_blank\" rel=\"noopener\">Redis Stack vector search\u003C\u002Fa>。P\u003Ca href=\"\u002Fnews\u002Fanthropic-mythos-pr-battle-ai-risk-zh\">ytho\u003C\u002Fa>n 端則搭配 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fredis\u002Fredis-py\" target=\"_blank\" rel=\"noopener\">redis-py\u003C\u002Fa>。如果你想處理向量工作流，還有 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fredis\u002Fredisvl\" target=\"_blank\" rel=\"noopener\">RedisVL\u003C\u002Fa> 可以用。\u003C\u002Fp>\u003Cp>這種寫法的好處很明確。你不用先搬資料到另一個向量資料庫。文件、metadata、向量可以放一起，查詢時也能一起處理。對 RAG 或推薦系統來說，這很省事。\u003C\u002Fp>\u003Cul>\u003Cli>資料型態：文字、圖片、影片、音訊\u003C\u002Fli>\u003Cli>儲存方式：JSON 或 hash 搭配 vector field\u003C\u002Fli>\u003Cli>搜尋方式：用 embedding 做語意相似度比對\u003C\u002Fli>\u003Cli>索引方式：Redis Search 建 secondary index\u003C\u002Fli>\u003Cli>查詢方式：KNN，找最近鄰結果\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>為什麼 embeddings 會改變搜尋玩法\u003C\u002Fh2>\u003Cp>Embeddings 的本質，就是把內容轉成數字向量。這些數字會保留語意關係。像「car repair」跟「automotive mai\u003Ca href=\"\u002Fnews\u002Fuk-regulators-assess-anthropic-model-risks-zh\">nt\u003C\u002Fa>enance」，字面不一樣，但向量距離可能很近。\u003C\u002Fp>\u003Cp>Redis 的做法不是在「理解」語言。它只是很會比距離。可是在很多產品場景裡，這就夠用了。搜尋結果比較像人話，空結果也會少很多。\u003C\u002Fp>\u003Cp>在這篇流程裡，Redis 也把 metadata 一起留著。你可以先用欄位條件過濾，再做向量搜尋。像是先篩地區、日期、分類，再找最接近的內容。這比把資料拆到多個系統乾淨很多。\u003C\u002Fp>\u003Cblockquote>“The best way to predict the future is to invent it.” — Alan Kay\u003C\u002Fblockquote>\u003Cp>這句話放在這裡很貼。因為這套流程不是空談 AI。它就是讓你把資料丟進去，立刻看搜尋結果，再調模型或 schema。\u003C\u002Fp>\u003Cp>對工程團隊來說，這種迭代方式很務實。你不用先把整個架構想得很神。先跑起來，再看 recall 和 latency，通常更有效。\u003C\u002Fp>\u003Ch2>這份 quick start 的實作路線\u003C\u002Fh2>\u003Cp>教學先從安裝套件和連線開始。你會看到 Python virtual environment、pip、Redis Cloud 或本機 Redis 的設定。接著載入 demo dataset，檢查一筆文件，然後寫入資料。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1776126117301-wkkj.png\" alt=\"Redis 向量搜尋快速上手\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>之後它會建立索引。常見指令像 \u003Ca href=\"https:\u002F\u002Fredis.io\u002Fdocs\u002Flatest\u002Fcommands\u002Fft.create\u002F\" target=\"_blank\" rel=\"noopener\">FT.CREATE\u003C\u002Fa> 和 \u003Ca href=\"https:\u002F\u002Fredis.io\u002Fdocs\u002Flatest\u002Fcommands\u002Fft.info\u002F\" target=\"_blank\" rel=\"noopener\">FT.INFO\u003C\u002Fa> 都會出現。這很像真實專案的節奏：先建表，再驗證，再查詢。\u003C\u002Fp>\u003Cp>查詢階段則是 KNN。這種查法不是找關鍵字，而是找最接近的向量。結果常會用 Pandas 表格看，方便你肉眼確認排序有沒有跑偏。\u003C\u002Fp>\u003Cul>\u003Cli>Python 套件：redis、pandas、sentence-transformers、tabulate\u003C\u002Fli>\u003Cli>資料寫入：JSON.SET 搭配 pipeline，減少來回次數\u003C\u002Fli>\u003Cli>索引類型：FLAT vector index，距離計算用 COSINE\u003C\u002Fli>\u003Cli>驗證工具：FT.INFO 看索引狀態與統計\u003C\u002Fli>\u003Cli>查詢方式：FT.SEARCH 搭配 KNN\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>向量搜尋和傳統搜尋差在哪\u003C\u002Fh2>\u003Cp>傳統關鍵字搜尋很直接。你輸入什麼，它就找什麼。這種方式對精準詞彙很有用，但對同義詞、改寫句、自然語言問題，常常不夠聰明。\u003C\u002Fp>\u003Cp>向量搜尋走的是另一條路。它看的是語意距離，不是字面是否完全相同。這讓它很適合做知識庫搜尋、客服檢索、RAG 前置 retrieval。\u003C\u002Fp>\u003Cp>如果你在挑工具，Redis 不是唯一選項。你也可以看 \u003Ca href=\"https:\u002F\u002Fwww.pinecone.io\u002F\" target=\"_blank\" rel=\"noopener\">Pinecone\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fqdrant.tech\u002F\" target=\"_blank\" rel=\"noopener\">Qdrant\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fweaviate.io\u002F\" target=\"_blank\" rel=\"noopener\">Weaviate\u003C\u002Fa>。但 Redis 的強項是，它把向量搜尋放進你可能已經在用的資料層。\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ca href=\"https:\u002F\u002Fredis.io\u002F\" target=\"_blank\" rel=\"noopener\">Redis\u003C\u002Fa>：適合已經有 Redis，想把 vectors 一起放進來\u003C\u002Fli>\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.pinecone.io\u002F\" target=\"_blank\" rel=\"noopener\">Pinecone\u003C\u002Fa>：專注 similarity search，管理型服務成熟\u003C\u002Fli>\u003Cli>\u003Ca href=\"https:\u002F\u002Fqdrant.tech\u002F\" target=\"_blank\" rel=\"noopener\">Qdrant\u003C\u002Fa>：開源取向，偏 retrieval-first\u003C\u002Fli>\u003Cli>\u003Ca href=\"https:\u002F\u002Fweaviate.io\u002F\" target=\"_blank\" rel=\"noopener\">Weaviate\u003C\u002Fa>：schema 和 semantic search 整合度高\u003C\u002Fli>\u003C\u002Ful>\u003Cp>我自己的看法很簡單。若你的系統本來就靠 Redis，先試 Redis 很合理。若你的核心工作就是大規模向量檢索，那專用向量資料庫還是值得比較。不要只看流行度，要看延遲和維運成本。\u003C\u002Fp>\u003Ch2>這和 RAG、推薦系統的關係\u003C\u002Fh2>\u003Cp>這份指南真正有用的地方，在於它很像 RAG 的最小可行版本。你先把文件切好，再轉成 embeddings，然後用向量搜尋找回最相關的片段。後面接 LLM，就能做問答或摘要。\u003C\u002Fp>\u003Cp>推薦系統也能吃這套。商品描述、文章內容、影片字幕，都可以轉成向量。再搭配分類、時間、地區等欄位，就能做出比較像人類搜尋習慣的結果。\u003C\u002Fp>\u003Cp>產業上，這類做法會越來越常見，原因很土炮也很現實。大家都想少搬一次資料。少一個系統，就少一次同步、少一份監控、少一堆權限設定。工程師通常會很買單。\u003C\u002Fp>\u003Cp>如果你要追一個實作方向，我會建議先做這三件事：先用自己的資料跑一次 quick start，再量 latency，再比 recall。不要只看 demo 跑得順不順，真實資料才會露出問題。\u003C\u002Fp>\u003Ch2>我怎麼看 Redis 這條路\u003C\u002Fh2>\u003Cp>Redis 做向量搜尋，不是要取代所有向量資料庫。它比較像是把一個本來就很快的資料層，順手加上語意檢索能力。這對中小型產品很實用。\u003C\u002Fp>\u003Cp>從架構角度看，這種整合式做法很有吸引力。你可以把 session、cache、metadata、vector 放在同一套系統。對團隊來說，學習成本和維運成本都比較低。\u003C\u002Fp>\u003Cp>但我也不會講得太美。Redis 不是萬用解。當你的向量量級很大，或檢索需求很複雜，專門做向量的方案可能更合適。重點是先知道自己要的是什麼。\u003C\u002Fp>\u003Ch2>接下來該怎麼試\u003C\u002Fh2>\u003Cp>如果你手上有一個搜尋功能，我會建議先拿 \u003Ca href=\"\u002Fnews\u002Fibm-100b-vector-database-single-server-zh\">1000\u003C\u002Fa> 筆資料做測試。把關鍵字搜尋和向量搜尋都跑一次。看哪個結果比較接近使用者想要的答案。\u003C\u002Fp>\u003Cp>再來是調 embedding model。不同模型的效果差很多。你可能會發現，同樣是 768 維向量，搜尋品質卻差一截。這種差異，實測比猜測有用。\u003C\u002Fp>\u003Cp>講白了，Redis 這篇 quick start 的價值不在語法，而在路線。它告訴你，語意搜尋可以很快落地。下一步不是空想，而是把自己的資料丟進去測。","Redis 不只拿來快取。這篇看它怎麼存 embeddings、建索引、跑 KNN 查詢，順手把語意搜尋和 RAG 的實作路徑講清楚。","redis.io","https:\u002F\u002Fredis.io\u002Fdocs\u002Flatest\u002Fdevelop\u002Fget-started\u002Fvector-database\u002F",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1776126124430-awwk.png","tools","zh","d8842ead-9fef-4e1c-85b9-bc1426f717fc",[17,18,19,20,21,22,23,24],"Redis","向量搜尋","Embedding","KNN","RAG","語意搜尋","Redis Stack","RedisVL",4,"2026-04-14T00:21:38.036845+00:00","2026-04-14T00:21:37.898+00:00",{"tags":29,"relatedLang":44,"relatedPosts":48},[30,32,33,35,36,38,40,42],{"name":21,"slug":31},"rag",{"name":22,"slug":22},{"name":23,"slug":34},"redis-stack",{"name":18,"slug":18},{"name":24,"slug":37},"redisvl",{"name":17,"slug":39},"redis",{"name":20,"slug":41},"knn",{"name":43,"slug":43},"embedding",{"id":15,"slug":45,"title":46,"language":47},"redis-vector-search-quick-start-guide-en","Redis Vector Search: Quick Start Guide Explained","en",[49,55,61,67,73,79],{"id":50,"slug":51,"title":52,"cover_image":53,"image_url":53,"created_at":54,"category":13},"bef47dbc-b0b4-439e-bae9-abe9473a321c","wei-shen-me-tether-ba-ben-di-ai-ji-yi-tui-jin-ri-chang-zhuan-zh","為什麼 Tether 把本地 AI 記憶推進日常裝置是對的","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780542170805-opi6.png","2026-06-04T03:02:19.599329+00:00",{"id":56,"slug":57,"title":58,"cover_image":59,"image_url":59,"created_at":60,"category":13},"d3ec03a8-a805-4a21-9826-72a74a72b625","databricks-model-serving-llm-deploy-guide-zh","Databricks Model Serving 讓 LLM 部署變簡單","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780525998117-7ur8.png","2026-06-03T22:32:51.005996+00:00",{"id":62,"slug":63,"title":64,"cover_image":65,"image_url":65,"created_at":66,"category":13},"4dd225a8-bf6c-4768-a486-a27956c7033d","opencode-digitalocean-model-freedom-zh","OpenCode+DigitalOcean 讓你切換模型","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780525116428-1q7g.png","2026-06-03T22:18:06.969758+00:00",{"id":68,"slug":69,"title":70,"cover_image":71,"image_url":71,"created_at":72,"category":13},"4bdcf208-fb80-484e-b4b6-06af035a6df1","modulate-aws-voice-chats-into-signals-zh","Modulate 用 AWS 把語音聊天做成訊號","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780519733892-rxue.png","2026-06-03T20:48:22.697917+00:00",{"id":74,"slug":75,"title":76,"cover_image":77,"image_url":77,"created_at":78,"category":13},"f44a28d3-2305-43de-b5fa-21217d561054","amazon-rekognition-content-moderation-filter-zh","Amazon Rekognition把審核變成過濾器","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780517005409-bxfc.png","2026-06-03T20:02:57.634353+00:00",{"id":80,"slug":81,"title":82,"cover_image":83,"image_url":83,"created_at":84,"category":13},"80f6f40b-3217-45e4-acff-7b2f6d261779","codex-workspace-limits-tell-you-why-zh","Codex 讓工作區限額錯誤說人話","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780514293711-ltqa.png","2026-06-03T19:17:41.340056+00:00",[86,91,96,101,106,111,116,121,126,131],{"id":87,"slug":88,"title":89,"created_at":90},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":92,"slug":93,"title":94,"created_at":95},"9b19ab54-edef-4dbd-9ce4-a51e4bae4ebb","mcp-in-2026-the-ai-tool-layer-teams-use-zh","2026 年 MCP：團隊真的在用的 AI 工具層","2026-03-26T08:01:46.589694+00:00",{"id":97,"slug":98,"title":99,"created_at":100},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":102,"slug":103,"title":104,"created_at":105},"05553086-6ed0-4758-81fd-6cab24b575e0","garry-tan-open-sources-claude-code-toolkit-zh","Garry Tan 開源 Claude Code 工具包","2026-03-26T08:26:20.068737+00:00",{"id":107,"slug":108,"title":109,"created_at":110},"042a73a2-18a2-433d-9e8f-9802b9559aac","github-ai-projects-to-watch-in-2026-zh","2026 必看 20 個 GitHub AI 專案","2026-03-26T08:28:09.619964+00:00",{"id":112,"slug":113,"title":114,"created_at":115},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":117,"slug":118,"title":119,"created_at":120},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":122,"slug":123,"title":124,"created_at":125},"bfdb467a-290f-4a80-b3a9-6f081afb6dff","aiml-2026-student-ai-ml-lab-repo-review-zh","AIML-2026：像課綱的學生實驗 Repo","2026-03-27T01:21:51.467798+00:00",{"id":127,"slug":128,"title":129,"created_at":130},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00",{"id":132,"slug":133,"title":134,"created_at":135},"3ce6e6e2-bac5-463e-9f8d-45caabcc61f7","awesome-ai-for-science-research-tools-map-zh","AI 科研工具清單，開始像地圖了","2026-03-27T01:46:50.521945+00:00"]