المهارات similarity-search-patterns
🔍

similarity-search-patterns

آمن

使用向量数据库构建生产级相似性搜索

متاح أيضًا من: wshobson

向量相似性搜索是语义搜索和RAG系统的核心,但需要仔细选择和调优索引。本技能提供Pinecone、Qdrant、pgvector和Weaviate的即用型模式,支持混合搜索和重排序。

يدعم: Claude Codex Code(CC)
🥉 75 برونزي
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "similarity-search-patterns". 为100万个产品嵌入设置Qdrant,目标是95%召回率

النتيجة المتوقعة:

  • 使用HNSW索引创建集合(m=16,ef_construct=64)
  • 启用标量量化(INT8),内存减少4倍
  • 推荐搜索参数:ef=128,在~50ms P99下达到95%召回率

استخدام "similarity-search-patterns". 搜索关于'machine learning optimization'的文档的混合搜索

النتيجة المتوقعة:

  • 向量搜索检索到20个语义相似的文档
  • BM25过滤'optimization'的精确术语匹配
  • 重排序结果以0.6/0.4权重结合两种信号

التدقيق الأمني

آمن
v1 • 2/25/2026

All 31 static analysis findings are false positives. The scanner incorrectly flagged Markdown documentation syntax as executable code. Backticks are code fence markers, URLs are documentation links, and API key parameters represent secure credential handling. The skill contains Python code examples for vector database implementations with no security concerns.

2
الملفات التي تم فحصها
594
الأسطر التي تم تحليلها
0
النتائج
1
إجمالي عمليات التدقيق
لا توجد مشكلات أمنية
تم تدقيقه بواسطة: claude

درجة الجودة

38
الهندسة المعمارية
100
قابلية الصيانة
87
المحتوى
50
المجتمع
100
الأمان
100
الامتثال للمواصفات

ماذا يمكنك بناءه

RAG应用构建器

使用高效的向量搜索实现检索增强生成,对文档嵌入进行搜索。支持结合语义和关键词匹配的混合搜索,以实现准确的上下文检索。

推荐引擎开发者

使用向量嵌入构建最近邻推荐系统。利用HNSW索引在数百万条目上实现亚秒级查询,支持可配置的召回阈值。

搜索平台工程师

使用PostgreSQL pgvector或托管服务部署生产级相似性搜索基础设施。实现预过滤和重排序管道以提升企业搜索质量。

جرّب هذه الموجهات

基础向量存储设置
我需要存储和搜索文档嵌入。请帮助我设置一个Pinecone向量索引,使用余弦相似度处理1536维嵌入。包含带元数据过滤的upsert和搜索功能。
混合搜索实现
创建一个混合搜索函数,结合pgvector的向量相似度和关键词匹配。向量搜索权重设为0.7,全文搜索权重设为0.3。包含带HNSW索引的SQL模式。
重排序管道
我有50个向量搜索结果,但需要更好的排名。展示如何使用交叉编码器模型进行重排序。包含sentence-transformers代码,并解释延迟和精度之间的权衡。
索引选择和调优
我有1000万个向量,需要P99延迟低于100ms且召回率95%。为Qdrant推荐索引类型和参数。解释我的用例的ef_construct、nprobe和量化设置。

أفضل الممارسات

  • 从平面索引开始处理小数据集(少于10万个向量),随着数据增长迁移到HNSW
  • 在部署近似索引之前,始终在目标延迟下测量召回率
  • 使用元数据预过滤以减少向量比较前的搜索空间

تجنب

  • 使用近似最近邻索引而不测量召回率下降
  • 在内存受限时不进行量化直接存储原始向量
  • 查询时不使用预过滤,导致大型集合进行全索引扫描

الأسئلة المتكررة

我应该为项目选择哪个向量数据库?
对于快速原型,使用Pinecone(托管服务,无需基础设施)。对于PostgreSQL项目,pgvector增加最小复杂度。对于高性能需求,Qdrant或Weaviate提供高级功能。考虑数据大小、查询延迟要求和现有基础设施。
余弦相似度和点积之间有什么区别?
余弦相似度仅测量角度(忽略幅度),非常适合归一化嵌入。点积包含幅度效应。对于大多数嵌入模型(OpenAI、Sentence Transformers),余弦相似度是标准选择。
如何在不牺牲延迟的情况下提高搜索召回率?
逐步增加索引参数(HNSW的ef_search,IVF的nprobe),同时测量P99延迟。使用重排序在高召回率检索后恢复精度。考虑两阶段检索:快速近似搜索,然后对top-K结果进行精确重排序。
插入后可以更新向量吗?
是的,所有支持的向量数据库都支持upsert操作。使用相同ID重新插入向量会就地更新它。请注意,频繁更新可能需要重建索引以获得最佳性能。
我应该使用什么嵌入维度?
使用嵌入模型的原生维度(例如,text-embedding-ada-002为1536维,all-MiniLM-L6-v2为384维)。更高维度捕获更多细节但增加存储和计算。将索引度量与嵌入模型的训练目标相匹配。
如何处理多语言搜索?
使用多语言嵌入模型,如multilingual-e5或LaBSE,它们将不同语言映射到同一向量空间。如果嵌入模型支持,不同语言的查询和文档仍能检索到相关结果。

تفاصيل المطور

بنية الملفات