qmd(Quick Markdown Search)是一个面向本地 Markdown 笔记、文档和 Claude 会话历史的快速搜索引擎。它通过命令行使用,适合需要在本机快速查找文本内容的场景。
用途 qmd 主要用于在本地 Markdown 文件中进行搜索,覆盖笔记、文档以及 Claude 会话历史。当用户提到“qmd”“search notes”“find docs”“search sessions”等关键词时,可以调用该工具。
主要能力 qmd 提供三种搜索模式:
- qmd search(默认,推荐使用):基于 BM25 的关键词匹配,结果即时返回。
- qmd vsearch(谨慎使用):向量相似度搜索,每次运行需加载本地模型,速度较慢。
- qmd query(避免使用):带 LLM 重排序的混合搜索,速度最慢且通常可靠性较低。
此外,qmd 支持获取完整文档、按集合过滤、多种输出格式(JSON、CSV、Markdown、XML、文件路径等),以及索引维护操作。
使用方式 快速开始:
- 关键词搜索:qmd search "authentication flow"
- 获取完整文档:qmd get "path/to/file.md"
- 搜索特定集合:qmd search "react hooks" -c claude-sessions
常用命令: 搜索:
- qmd search "query":默认关键词搜索
- qmd search "query" -n 10:返回更多结果
- qmd search "query" -c collection:限定集合
- qmd search "query" --json:JSON 输出
- qmd search "query" --files:仅文件路径
- qmd search "query" --full:完整文档内容
- qmd search "query" --all --min-score 0.3:返回阈值以上的所有匹配
检索文档:
- qmd get "path/to/file.md":完整文档
- qmd get "path/to/file.md:50":从第 50 行开始
- qmd get "path/to/file.md" -l 100:最多 100 行
- qmd multi-get "journals/2025-01*.md":glob 模式
- qmd multi-get "doc1.md, doc2.md":多个文件
集合管理:
- qmd collection list:显示所有集合
- qmd collection add /path --name notes --mask "**/*.md"
- qmd ls:列出集合中的文件
- qmd ls collection-name:列出特定集合中的文件
维护:
- qmd status:索引健康状态
- qmd update:重新索引已更改文件
- qmd embed:更新向量嵌入
输出格式: --json(带片段)、--files(docid、score、filepath、context)、--csv、--md、--xml、--full(完整文档内容)。
搜索选项: -n <num>(结果数量,默认 5)、-c/--collection <name>(按集合过滤)、--all(返回所有匹配)、--min-score <num>(最低相似度分数)、--line-numbers(添加行号)。
使用建议
- 优先使用 qmd search,即时 BM25 关键词匹配。
- 谨慎使用 qmd vsearch,因模型加载而较慢。
- 避免使用 qmd query,混合搜索通常不可靠。
- 使用 --json 或 --files 获得对智能体友好的输出。
- 当已知目标时,使用 -c collection 缩小范围。
- 索引位置:~/.cache/qmd/index.sqlite。
适用场景 适用于本地 Markdown 笔记、文档和 Claude 会话历史的快速检索,尤其适合需要命令行搜索、脚本集成或智能体调用的场景。
限制 qmd vsearch 每次运行需加载本地模型,速度较慢;qmd query 速度最慢且可靠性较低。其他限制暂未提供。