搜索排序规则
搜索排序规则
全局搜索机制
轻笺的全局搜索覆盖书签、笔记、文件、标签四种资源类型,采用 SQL LIKE 模糊匹配。
搜索匹配字段
| 资源类型 | 搜索字段 |
|---|---|
| 书签 | 名称、描述、URL、关联标签名称 |
| 笔记 | 标题、正文内容 |
| 文件 | 文件名、文件类型、所在文件夹名称 |
| 标签 | 标签名称 |
SQL 查询逻辑
搜索关键词通过 %keyword% 的 LIKE 模式匹配:
- 书签:
name LIKE ? OR description LIKE ? OR url LIKE ? OR 关联标签名 LIKE ? - 笔记:
title LIKE ? OR content LIKE ? - 文件:
file_name LIKE ? OR file_type LIKE ? OR folder_name LIKE ? - 标签:
name LIKE ?
如果有关键词,四种类型分别以各自的关键词条件查询;如果没有关键词,返回全部资源。
排序规则
四种资源类型各自独立排序:
- 书签:
ORDER BY sort ASC, create_time DESC - 笔记:
ORDER BY sort ASC, update_time DESC - 文件:
ORDER BY create_time DESC - 标签:
ORDER BY sort ASC, create_time DESC
全局搜索结果按类型分组展示(书签组、笔记组、文件组、标签组),每组内按各自排序规则排列。
知识库检索(AI 助手专用)
AI 助手的知识库搜索采用不同的匹配算法:
- 分词提取:将查询文本拆分为中文单字+二字词组合和英文单词
- 文档扫描:遍历全表(缓存 5 分钟),计算每篇文档的相关性得分
- 得分公式:
- 标题命中每个词 +10 分
- 正文命中每个词 +3 分
- 总分除以 √(文档内容长度) 归一化
- 结果过滤:剔除得分为 0 的结果,按分数降序,返回 Top 5
搜索技巧
- 关键词越精确匹配度越高
- 支持搜索书签的关联标签名(如搜"前端"能找到标签为"前端"的书签)
- 搜索不区分大小写
- 不使用全文索引(FULLTEXT),全文搜索为顺序扫描