全文搜索
需要启用:桌面版在工作区设置中勾选「搜索」;CLI 用
--enable-search
基于 Tantivy 引擎构建的全文搜索,支持中日英分词。
使用
在浏览器页面中按下 / 打开搜索框,输入关键词即可实时搜索所有 Markdown 文件。
↑/↓— 在结果间导航Enter— 跳转到选中结果Esc— 关闭搜索框
搜索范围
Markon 对以下字段建立索引:
- 文件路径 —
docs/guide/install.md中匹配install - 文件名 —
README.md中匹配readme - 标题 — 所有
#/##/###标题行 - 正文内容 — 所有 Markdown 文本
搜索结果
每条结果包含:
- 文件路径(相对于工作区根目录)
- 匹配的标题
- 高亮的代码片段 — 关键词上下文预览
点击结果或按 Enter 跳转后,Markon 会:
- 在浏览器中打开对应文件
- 自动滚动到匹配位置
- 临时高亮关键词(几秒后淡出)
中文分词
使用 Jieba 分词器,能正确处理中文词语:
- 搜索
数据库能匹配「数据库连接」、「关系型数据库」,但不会匹配「数据」 - 搜索
数据能匹配「数据处理」、「大数据」 - 日文同样支持(通过 Jieba 的东亚语言分词)
自动索引更新
Markon 启动时对工作区做一次全量索引,之后通过 notify 监听文件变化:
- 文件修改 — 自动重新索引该文件
- 新文件 — 自动加入索引
- 文件删除 — 自动从索引移除
无需手动刷新,编辑器里保存文件后,搜索结果即刻反映。
技术细节
- 索引位置:内存(进程退出即清理)
- 首次索引耗时:每 1000 个 Markdown 文件约 1-2 秒
- 内存占用:每 1000 个文件约 10-50 MB(取决于内容量)
- 不索引:非
.md扩展名的文件一律跳过
局限
- 目前不支持正则搜索、短语精确匹配、字段过滤等高级查询
- 代码块内容参与索引(如有代码搜索需求可用)
- 无法跨工作区搜索