介绍
# QMD Search Skill
使用 qmd 高效搜索 Markdown 知识库,这是一个本地索引工具,利用 BM25 + 向量嵌入(vector embeddings)仅返回相关片段而非完整文件。
## 为什么使用此工具
- **减少 96% 的 token** - 返回相关片段而非读取整个文件 - **即时结果** - 预索引内容意味着快速搜索 - **本地且私密** - 所有索引和搜索均在本地进行 - **混合搜索** - BM25 用于关键词匹配,向量搜索用于语义相似性
## 命令
### 搜索 (BM25 关键词匹配) ```bash qmd search "your query" --collection <name> ``` 快速、准确的关键词搜索。最适合特定术语或短语。
### 向量搜索 (语义) ```bash qmd vsearch "your query" --collection <name> ``` 语义相似性搜索。最适合措辞可能各异的概念性查询。
### 混合搜索 (两者 + 重排序) ```bash qmd hybrid "your query" --collection <name> ``` 结合两种方法并使用 LLM 重排序。最彻底,但往往有些大材小用。
## 如何使用
1. **检查集合是否存在**: ```bash qmd collection list ```
2. **搜索集合**: ```bash # For specific terms qmd search "api authentication" --collection notes
# For conceptual queries qmd vsearch "how to handle errors gracefully" --collection notes ```
3. **阅读结果**:qmd 返回带有文件路径和上下文的相关片段
## 设置(如果尚未安装 qmd)
```bash # Install qmd bun install -g https://github.com/tobi/qmd
# Add a collection (e.g., Obsidian vault) qmd collection add ~/path/to/vault --name notes
# Generate embeddings for vector search qmd embed --collection notes ```
## 调用示例
``` /qmd api authentication # BM25 search for "api authentication" /qmd how to handle errors --semantic # Vector search for conceptual query /qmd --setup # Guide through initial setup ```
## 最佳实践
- 使用 **BM25 搜索** (`qmd search`) 进行特定术语、名称或技术关键字的搜索 - 当搜索概念且措辞可能变化时,使用 **向量搜索** (`qmd vsearch`) - 除非您需要最大的召回率,否则避免使用混合搜索——它速度较慢 - 在添加大量新内容后重新运行 `qmd embed` 以保持向量最新
## 参数处理
- `$ARGUMENTS` 包含完整的搜索查询 - 如果存在 `--semantic` 标志,请使用 `qmd vsearch` 而不是 `qmd search` - 如果存在 `--setup` 标志,请引导用户完成安装和集合设置 - 如果指定了 `--collection <name>`,则使用该集合;否则默认检查可用的集合
## 工作流程
1. 从 `$ARGUMENTS` 解析参数 2. 检查 qmd 是否已安装 (`which qmd`) 3. 如果未安装,提议引导设置 4. 如果搜索: - 如果未指定集合,则列出集合 - 运行适当的搜索命令 - 向用户显示包含文件路径的结果 5. 如果用户想要阅读特定结果,请对文件路径使用 Read 工具