hybrid-search-implementation
實作 RAG 混合搜尋
純向量搜尋會遺漏精確匹配,而關鍵字搜尋在語義查詢上會失效。此技能提供即用型範本,使用 RRF 融合、線性組合和交叉編碼器重排序來結合兩種方法。
Télécharger le ZIP du skill
Importer dans Claude
Allez dans Paramètres → Capacités → Skills → Importer un skill
Activez et commencez à utiliser
Tester
Utilisation de "hybrid-search-implementation". 如何結合向量和關鍵字搜尋結果?
Résultat attendu:
- 使用倒數排名融合 (RRF):
- 1. 執行兩種搜尋以獲得排名列表
- 2. 對每個結果計算分數 = sum(weight / (k + rank))
- 3. 透過排序組合分數來融合
- 範例:
- vector_results = [('doc1', 0.9), ('doc2', 0.8)]
- keyword_results = [('doc2', 0.95), ('doc3', 0.7)]
- fused = rrf_fusion([vector_results, keyword_results])
- # 回傳 [('doc2', 0.03), ('doc1', 0.016), ('doc3', 0.016)]
Utilisation de "hybrid-search-implementation". RRF 和線性融合有什麼區別?
Résultat attendu:
- RRF (倒數排名融合):
- - 分數 = sum(1 / (k + rank))
- - 基於排名,不需要分數正規化
- - k=60 是標準常數
- - 無需調整即可良好運作
- 線性組合:
- - 分數 = alpha * vector_score + (1-alpha) * keyword_score
- - 需要將分數正規化至 [0,1]
- - Alpha 需要針對每個資料集進行經驗調整
- - 更具可控性但需要調整
Utilisation de "hybrid-search-implementation". 我應該在混合搜尋中加入重排序嗎?
Résultat attendu:
- 是的,重排序能顯著改善品質:
- 1. 從混合搜尋中取得更多候選項 (50-100)
- 2. 使用交叉編碼器為查詢-文件配對評分
- 3. 回傳前 k 個重排序結果
- 權衡考量:
- - + 更佳的精確度和相關性
- - - 額外延遲(交叉編碼器推論)
- - 模型: cross-encoder/ms-marco-MiniLM-L-6-v2 是良好的起點
Audit de sécurité
SûrAll static findings are false positives. The skill contains documentation templates for hybrid search algorithms (RRF, linear fusion) with PostgreSQL, Elasticsearch, and custom RAG pipelines. Static scanner misidentified mathematical formulas as crypto operations, markdown code fences as command execution, and benign terminology as security risks. No malicious code or credential exfiltration present.
Facteurs de risque
⚡ Contient des scripts (1)
📁 Accès au système de fichiers (1)
Score de qualité
Ce que vous pouvez construire
建置具有更佳召回率的 RAG 系統
結合語義理解與精確匹配,改善 LLM 上下文的文件檢索。處理需要概念相似性和特定術語的查詢。
實作企業搜尋
建立能找到語義相關內容和包含精確詞彙(如產品代碼、名稱或識別碼)文件的搜尋系統。
改善搜尋品質指標
應用 RRF 等融合技術來提升召回率而不犧牲精確度。記錄個別分數以除錯和調整搜尋品質。
Essayez ces prompts
協助我實作倒數排名融合來結合向量和關鍵字搜尋結果。我有兩個 (doc_id, score) 元組列表。向我展示如何融合它們。
向我展示如何使用 pgvector 為嵌入設定 PostgreSQL 表格,並使用 tsvector 進行全文搜尋。包含 HNSW 和 GIN 索引定義。
協助我撰寫 Elasticsearch 混合搜尋查詢,使用 RRF rank 功能結合密集向量 kNN 與 BM25 文字匹配。
建立完整的 HybridRAGPipeline 類別,並行執行向量和關鍵字搜尋,使用可配置方法(RRF 或線性)融合結果,並可選擇性地使用交叉編碼器重排序。
Bonnes pratiques
- 從 RRF 融合開始,因為它無需參數調整即可良好運作。使用 k=60 作為標準常數。
- 在融合前從個別搜尋中取得更多候選項(最終限制的 3 倍)以確保良好的召回率。
- 在開發期間分別記錄向量和關鍵字分數。這有助於在結果遺漏時進行除錯。
- 在生產系統中使用交叉編碼器重排序。品質改善是顯著的。
Éviter
- 不要假設單一融合權重適用於所有查詢。某些查詢需要更多語義匹配,而其他查詢需要關鍵字匹配。
- 不要完全跳過關鍵字搜尋。精確詞彙匹配在處理名稱、代碼和特定短語時比向量更好。
- 不要過度取得候選項。在召回率需求與延遲之間取得平衡。重排序前 50-100 個候選項通常已足夠。