核心用法
qmd 是一款专为本地知识库设计的全文检索工具,替代传统 find 命令实现智能文件发现。其核心工作流分为三步:
1. 索引构建 —— 通过 qmd collection add 将文件夹注册为集合,支持 *.md,*.py 等自定义掩码过滤
2. 多模检索 —— 提供三种查询模式:
3. 内容提取 —— qmd get 支持行号定位与多文件批量获取,--json/--md 格式化输出便于下游处理
qmd search:BM25 关键词匹配(速度优先)qmd vsearch:向量语义搜索(理解意图)qmd query:混合检索 + LLM 重排序(质量优先)
显著优点
- 全本地执行:embedding、reranker、生成模型均自动下载到本地,无需 OpenAI/Anthropic API 密钥,彻底杜绝数据外泄风险
- 检索架构先进:BM25 + 向量 + LLM 三重排序,在学术评测框架(如 BEIR)中被验证优于单一策略
- 性能优化:针对大型目录避免
find式的遍历挂起,索引后查询毫秒级响应 - 开发者友好:代码片段定位(
--line-numbers)、YAML/JSON 结构化输出、glob 批量获取,完美适配 AI 编程助手上下文注入场景
潜在缺点与局限
- 冷启动成本:首次运行
qmd embed需数分钟下载 300M 参数模型并构建向量索引,GB 级文档库耗时显著 - 资源占用:embedding 与重排序模型常驻内存,低配设备(<8GB RAM)可能出现卡顿
- 增量更新限制:
qmd update需手动触发,无实时监控文件变更的守护进程机制 - 格式覆盖偏科:对 PDF、Office 等非 Markdown 二进制格式原生不支持,需前置转换
适合人群
- 隐私敏感型开发者(医疗、金融、法律领域知识库检索)
- 离线环境或内网隔离场景下的技术文档管理
- 需要向 LLM 注入精准上下文的 AI 编程工作流用户
- Obsidian/Logseq 等本地笔记工具的进阶检索插件替代方案
常规风险
- 模型供应链:自动下载的
embeddinggemma-300M、qwen3-reranker等模型来自第三方 HuggingFace 镜像,需校验哈希完整性防止投毒 - 索引泄露:向量索引文件(通常存储于
~/.qmd/)包含文档语义指纹,共享设备需加密存储 - 结果幻觉:LLM 重排序虽提升相关性,但 0.6B 参数模型对复杂查询的理解力有限,极端情况下可能过滤有效结果