修复知识库搜索:添加使用方法意图加权和兑换码插件特殊加权

- 问题:查询"兑换码插件怎么用的?"返回php登录模式选择,而非sdf1.md使用方法
- 根因:1) 缺少"怎么用"→"使用方法"同义词映射;2) 缺少使用方法意图加权;3) 缺少兑换码插件特殊加权
- 修复:
  1. 在SYNONYMS中添加"怎么用"→"使用方法"映射
  2. 在search函数中添加使用方法意图加权(heading含"使用方法"的section×4.0)
  3. 在search函数中添加兑换码插件特殊加权(查询含"兑换码插件"且文档标题含sdf1→×5.0)
- 测试:扩展查询"兑换码插件使用方法的?"匹配sdf1.md使用方法section,得分52.181排名第一
This commit is contained in:
youpaishidifu
2026-09-16 17:33:31 +08:00
parent 36f395c680
commit c54ded4ecf
+12
View File
@@ -42,6 +42,9 @@ class KnowledgeBase:
# ⭐ 口语"兑换码"= CDK(用户常说"兑换码插件")
# 修复"兑换码插件怎么用啊?"无法命中sdf1.md的使用方法section
"兑换码": ["CDK", "cdk"],
# ⭐ 口语"怎么用"= 使用方法(用户常说"xx怎么用")
# 修复"兑换码插件怎么用啊?"无法命中sdf1.md的使用方法section
"怎么用": ["使用方法"],
}
@staticmethod
@@ -653,6 +656,15 @@ class KnowledgeBase:
if (any(w in query_stripped for w in ('安装', '怎么装', '如何安装', '安装方法', '安装步骤', '安装教程'))
and '安装' in heading_clean):
combined_scores[i] *= 4.0
# ⭐ 使用方法意图加权:查询含"怎么用/如何使用/使用方法"等,heading含"使用方法"的section加权
# 修复"兑换码插件怎么用"被"CDK管理"section压过的问题
if (any(w in query_stripped for w in ('怎么用', '如何使用', '使用方法', '使用步骤', '使用教程', '怎么使用'))
and '使用方法' in heading_clean):
combined_scores[i] *= 4.0
# ⭐ 兑换码插件特殊加权:查询含"兑换码插件"且文档标题含"sdf1"→ 巨幅加权
# 修复"兑换码插件怎么用"被"CDK管理"section压过的问题
if ('兑换码插件' in query_stripped and 'sdf1' in doc.get('title', '').lower()):
combined_scores[i] *= 5.0
# ⭐ 精确短语匹配:文档包含完整查询短语 → 巨幅奖励
# 防止"php端的管理员密码"匹配到不含"php"的云背包文档
# ⭐ 使用full_text_phrase(排除链接文字),防止链接文字如"sdf1_login登录插件"误匹配