| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
优化Ascend C静态文档搜索、构建与导航体验 Co-authored-by: wuyang_hw<wuyang74@hisilicon.com> # message auto-generated for no-merge-commit merge: !4941 merge search into master 优化Ascend C静态文档搜索、构建与导航体验 Created-by: wuyang_hw Commit-by: wuyang_hw Merged-by: cann-robot Description: ## 描述 现有静态文档搜索依赖全量正文 CJK JSON 索引,存在索引体积较大、构建耗时长、标识符及短前缀搜索不准确、摘要与命中内容不一致等问题。同时,搜索结果通常只能进入页面顶部,较长侧边栏也无法自动定位当前页面。 本次升级并扩展 Pagefind 静态搜索能力,不引入搜索服务器,改善搜索质量、构建性能和页面导航体验。 ### 搜索索引与查询能力 - 将 Pagefind 由 1.0.4 升级至 1.5.2。 - 删除原有全量正文 CJK JSON 索引;正文检索由 Pagefind 承担,新增标题/路径索引及结构化标识符索引。 - 支持中文、英文、大小写归一化、中英文组合、特殊符号、拼写错误、标识符精确匹配及短前缀查询。 - 在标识符和技术词查询的候选融合阶段,综合标题、小标题、正文、精确匹配、前缀匹配、链接图 PageRank 及表格、列表、正文等结构化信号进行排序。 - 优先从命中上下文生成摘要,并对匹配文本进行安全高亮。 - 展示匹配小标题;可定位时跳转至已有小节锚点,无可用锚点时保持页面级跳转。 - Pagefind 仅索引文档正文,排除侧边栏和标题锚点。 - 选择 NPU 产品后,搜索结果过滤明确不支持该产品的 API;支持信息未知的页面仍保留。 ### 构建性能 - 将完整侧边栏数据提取为客户端共享模块,避免每个静态 HTML 重复序列化完整目录。 - 降低静态页面渲染和索引构建开销,大幅优化构建耗时,构建效率提升约10倍。 ### 页面使用体验 - 页面跳转后,侧边栏自动将当前项滚动到可视区域。 - 展示文档版本、分支、提交和构建时间。 - 根据 Git 历史展示源文档最后更新时间。 ### 搜索质量测试 - 新增独立 Chromium 黑盒搜索基准测试框架。 - 支持测试线上 URL、本地静态目录和指定 Git commit。 - 提供 170 个版本化查询用例,覆盖 API、中文正文、标识符、前缀、分隔符、拼写错误、Unicode、摘要及无结果场景。 - 支持验证摘要内容、结果链接、小节锚点及点击后的实际滚动位置。 - 生成 Success@K、MRR、nDCG、目标召回率、无效链接率和端到端延迟等指标。 ## 测试 - 执行完整 VitePress 和 Pagefind 构建,成功建立页面的索引。 - 搜索基准:170/170 查询无异常完成。 - Success@1/3/10:80.6% / 95.2% / 100.0%。 - MRR@10:0.8820;nDCG@10:0.8729;目标召回率@10:95.4%。 - 无效链接率@10:0.0%。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!4941 | 2 个月前 |