核心用法
qmd 是一款专为Markdown、笔记和文档设计的本地高速搜索CLI工具,采用三层检索架构:BM25关键词搜索(快速精准匹配)、向量语义搜索(理解查询意图)、LLM重排序(智能优化结果排序)。支持通过collection管理多项目索引,提供search/vsearch/query三种检索模式,以及get/multi-get文件内容提取功能。
显著优点
- 三重检索融合:BM25处理精确关键词,向量搜索捕捉语义关联,0.6B参数重排序模型优化结果质量,远胜单一检索方案
- 完全本地运行:embeddinggemma-300M、qwen3-reranker-0.6b、Qwen3-0.6B模型均自动下载本地执行,零API成本、零网络延迟、保障数据隐私
- 性能优化设计:针对大目录避免
find式遍历 hang 住,索引化搜索实现毫秒级响应 - 灵活输出格式:支持
--files快速发现、--json结构化数据、--md格式化展示,适配脚本集成与人工阅读 - 代码友好:支持行号显示、指定行范围提取、glob批量获取,满足开发者代码审查与上下文收集需求
潜在局限
- 索引维护成本:新增文件需手动执行
qmd update,实时性不如直接文件系统遍历 - 首次嵌入耗时:
qmd embed生成向量索引需数分钟,大型知识库初始化成本较高 - 模型资源占用:三模型常驻或按需加载对内存/CPU有一定要求,低配置设备可能受限
- Markdown-centric:虽支持
*.py等扩展名配置,但核心优化场景为文本类内容,二进制文件搜索非其设计目标
适合人群
- 开发者:快速定位代码实现、配置文件、项目文档
- 知识工作者:管理大规模笔记库(Obsidian/Notion导出等),实现第二大脑的高效检索
- 技术写作者:跨文档查找概念引用、维护文档一致性
- 隐私敏感用户:拒绝云端笔记搜索,坚持数据本地化处理
常规风险
- 索引滞后风险:未及时
update导致搜索不到最新内容,关键场景建议建立自动化索引更新机制 - 模型安全边界:本地LLM虽规避了云端数据泄露,但模型本身可能存在训练数据偏见或生成不当内容的风险
- 路径遍历误操作:
multi-get配合glob模式时需注意路径范围,避免意外读取敏感文件