From 5a2be87f658d01bc5b3b7ecdba92ac69bf09dcf7 Mon Sep 17 00:00:00 2001
From: ai_xiaopei <xiaopei@aisim.cn>
Date: Thu, 03 Sep 2026 15:15:37 +0800
Subject: [PATCH] fix(search): 搜索准确性四连修——FTS5 MATCH 引号包裹(连字符不再被解析成 MINUS);KeywordSearch 截断按命中关键词数排序(高频 bigram 不再挤出强相关文档);原词奖励档(完整短语压过泛化 bigram);tags 字段真实参与评分(此前误用 Section)
---
internal/draft/intake.go | 20 ++++++++++++++------
1 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/internal/draft/intake.go b/internal/draft/intake.go
index 0f4c36f..8e90449 100644
--- a/internal/draft/intake.go
+++ b/internal/draft/intake.go
@@ -654,6 +654,13 @@
HasMergeHint: hasMerge,
}
+ // 从路径提取一级目录名作为 Type
+ // 路径格式:待审阅/TAPD提取/003-xxx/draft.md
+ parts := strings.Split(relPath, string(filepath.Separator))
+ if len(parts) >= 2 && parts[0] == "待审阅" {
+ draft.Type = parts[1]
+ }
+
// 解析 frontmatter
fm := parseFrontmatter(string(content))
if title, ok := fm["title"]; ok {
@@ -662,9 +669,6 @@
if status, ok := fm["status"]; ok {
draft.Status = status
}
- if draftType, ok := fm["type"]; ok {
- draft.Type = draftType
- }
if created, ok := fm["created"]; ok {
draft.Created = created
}
@@ -690,6 +694,13 @@
HasMergeHint: false,
}
+ // 从路径提取一级目录名作为 Type
+ // 路径格式:待审阅/TAPD提取/003-xxx.md
+ parts := strings.Split(relPath, string(filepath.Separator))
+ if len(parts) >= 2 && parts[0] == "待审阅" {
+ draft.Type = parts[1]
+ }
+
// 解析 frontmatter
fm := parseFrontmatter(string(content))
if title, ok := fm["title"]; ok {
@@ -698,9 +709,6 @@
if status, ok := fm["status"]; ok {
draft.Status = status
}
- if draftType, ok := fm["type"]; ok {
- draft.Type = draftType
- }
if created, ok := fm["created"]; ok {
draft.Created = created
}
--
Gitblit v1.10.0