docs: 更新 README — 混合检索、增量入库、Docker、导出功能

This commit is contained in:
2026-07-11 19:48:15 +08:00
parent 1df4793acb
commit 3e51e166c2
+44 -7
View File
@@ -13,6 +13,11 @@ Markdown 文档向量数据库 — 将 Markdown 文件自动分块、嵌入、
- **安全**: 可选 API Key 认证、速率限制、路径遍历防护
- **多格式文档**: 支持 `.md` / `.txt` / `.pdf` / `.html` / `.epub`,按扩展名自动选择分块器,可通过 `Splitter` Protocol 扩展
- **去重**: 同一文件重复入库自动覆盖旧版本(基于路径 SHA256 哈希)
- **混合检索**: BM25 关键词 + 向量语义联合检索,加权融合排序,支持切换纯向量模式
- **增量入库**: 基于 SHA256 哈希自动跳过未变更文件,避免重复嵌入浪费 GPU
- **结果重排序**: 可选 Cross-Encoder 精确重排(`BAAI/bge-reranker-base`),提升检索精度
- **数据导出**: 支持 JSON/CSV 导出 collection 全量数据
- **Docker 部署**: 提供 Dockerfile 和 docker-compose.yml,一键部署(含 GPU profile
## 快速开始
@@ -145,17 +150,43 @@ for r in resp.json()["results"]:
---
---
## Docker 部署
```bash
# 构建并启动(CPU 模式)
docker compose up -d
# GPU 模式(需 nvidia-container-toolkit
docker compose --profile gpu up -d
# 查看日志
docker compose logs -f
# 停止服务
docker compose down
# CLI 使用示例
docker exec -it md-vector-db uv run md-vector-db stats
docker exec -it md-vector-db uv run md-vector-db ingest /app/md_docs/doc.md
```
---
## CLI 命令参考
所有命令均支持 `--config/-c`(配置文件)、`--collection/-C`(集合名,默认 `default`)。
| 命令 | 说明 |
| --------------------------- | -------------------------------------------------------- |
| `ingest <文件路径>` | 入库单文件自动识别格式),支持`-C` 指定集合 |
| `ingest-dir <目录路径>` | 递归入库目录下所有支持的文档格式 |
| `search <查询> -k <数量>` | 语义检索,`-k` 默认 10、最大 100`--json` JSON 输出 |
| `stats` | 显示 chunks 总数、源文件列表 |
| `serve -p <端口>` | 启动 HTTP 服务(默认 8000 |
| 命令 | 说明 |
| --------------------------------- | -------------------------------------------------------- |
| `ingest <文件路径> --incremental` | 增量入库单文件自动跳过未变更文件 |
| `ingest <文件路径> --force` | 强制重新入库(忽略增量检查) |
| `ingest-dir <目录路径>` | 递归入库目录下所有支持的文档格式 |
| `search <查询> -k <数量> --mode` | 语义检索,`--mode hybrid\|vector``--json` JSON 输出 |
| `stats` | 显示 chunks 总数、源文件列表 |
| `export -o <文件> -f <json\|csv>` | 导出 collection 数据 |
| `serve -p <端口>` | 启动 HTTP 服务(默认 8000 |
---
@@ -182,6 +213,12 @@ chunk:
server:
host: 0.0.0.0 # 服务监听地址
port: 8000 # 服务监听端口
search:
mode: hybrid # 检索模式: hybrid (BM25+向量) | vector (纯向量)
bm25_weight: 0.3 # BM25 权重 (0=纯向量, 1=纯BM25)
candidate_multiplier: 3 # 向量检索候选倍数
enable_rerank: false # 是否启用 Cross-Encoder 重排序
```
### .env 环境变量