Skip to content

feat: 优化全局搜索功能 - 提升搜索准确度与排序质量#1032

Closed
bobodaye wants to merge 6 commits intomindoc-org:masterfrom
bobodaye:global_search_optimize
Closed

feat: 优化全局搜索功能 - 提升搜索准确度与排序质量#1032
bobodaye wants to merge 6 commits intomindoc-org:masterfrom
bobodaye:global_search_optimize

Conversation

@bobodaye
Copy link
Copy Markdown
Contributor

No description provided.

bobodaye added 6 commits March 5, 2026 21:46
- 为 Cherry 编辑器阅读模式的目录添加最大高度限制
- 当目录过长时支持垂直滚动查看后续条目
- 使用 calc(100vh - 180px) 动态计算合适的滚动容器高度
- 启用 webkit 平滑滚动以改善移动端体验
1. SQL搜索添加相关性排序:CASE WHEN标题匹配THEN 2 ELSE 1排序,标题匹配结果优先展示
2. TF-IDF算法修正:COUNT改为SUM计算总词频;每个词独立计算IDF;添加查询词覆盖率加成
3. 分词过滤优化:过滤单字符标点/特殊字符避免匹配大量无关文档;原始关键词加入搜索词列表
4. 批量加载优化:将逐条DB查询改为批量IN查询(Document/Blog/Book/Member),大幅减少DB往返
5. 排序算法优化:冒泡排序改为sort.Slice,时间复杂度从O(n²)降到O(n log n)
6. 标题加权方式重构:移除10次标题重复拼接,改为搜索结果层1.5x boost系数,避免索引数据污染
7. 精确匹配boost(5x):文档内容包含原始搜索关键词时大幅提分,解决专有名词排名靠后问题
8. 词长权重:长词(更具体)的TF-IDF贡献按log2(1+len)加权,专有名词匹配权重高于短词
9. 对数TF替代原始TF:公式从wordCount/totalWordsInDoc改为1+log(wordCount+1),解决空/短文档排名异常高的问题
10. 分页时机修复:标题boost和精确匹配boost在分页截取之前完成,确保高相关性文档不被遗漏
11. 总文档数查询优化:CONCAT+DISTINCT改为子查询,可利用联合索引提升性能
12. 新增mindoc reindex CLI命令:支持全量重建倒排索引,清空旧数据后按批次重建
@bobodaye bobodaye closed this Mar 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant