其他
单机小中型代码库用 GrepAI GOB…
在单开发者、单机、小到中型代码库的 GrepAI 项目中,使用 GOB 作为默认本地文件存储来保存向量、文件元数据和分块索引。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 35/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 38/100 ×0.15
适用场景
单机小中型代码库用 GrepAI GOB特定
解决思路
- 在 `.grepai/config.yaml` 中使用最小默认配置启用 GOB:`store:\n backend: gob`。
- 也可显式配置 GOB:`store:\n backend: gob`;索引会自动存放在 `.grepai/index.gob`。
- 确认存储位置:GOB 会在项目 `.grepai/` 目录创建 `config.yaml`、`index.gob`(向量 embeddings)和 `symbols.gob`(trace 的符号索引)。
- 初始化项目:运行 `grepai init`。
- 创建索引:运行 `grepai watch`,会创建 `index.gob`。
- 检查索引状态:运行 `grepai status`,查看 `Index`、`Files`、`Chunks`、`Size`、`Last updated`。
- 备份索引:运行 `cp .grepai/index.gob .grepai/index.gob.backup`。
- 清空并重建索引:运行 `rm .grepai/index.gob`,然后运行 `grepai watch`。
- 迁移到新机器:运行 `cp -r .grepai /path/to/new/location/`;仅在使用相同 embedding model 时有效。
- 估算内存占用:GOB 搜索时会把整个索引加载到 RAM,约 10 MB 索引用 ~20 MB,50 MB 用 ~100 MB,500 MB 用 ~1 GB。
- 配置 `.gitignore`:加入 `.grepai/`,避免提交机器特定索引。
- 共享索引时不要直接复制文件,推荐让每个开发者各自运行 `grepai watch` 生成本地索引。
- 迁移到 PostgreSQL:更新配置 `store:\n backend: postgres\n postgres:\n dsn: postgres://user:pass@localhost:5432/grepai`,然后运行 `rm .grepai/index.gob` 和 `grepai watch` 重建索引。
- 迁移到 Qdrant:更新配置 `store:\n backend: qdrant\n qdrant:\n endpoint: localhost\n port: 6334`,然后运行 `rm .grepai/index.gob` 和 `grepai watch` 重建索引。
- 索引文件过大时:增加更多 ignore patterns,或迁移到 PostgreSQL/Qdrant。
- 大型代码库搜索慢时:迁移到 Qdrant 获得更好性能。
- 索引损坏时:运行 `rm .grepai/index.gob .grepai/symbols.gob`,然后运行 `grepai watch`。
- 遇到 “Index not found” 错误时:运行 `grepai watch` 创建索引。
- 用于小/中型项目:文件数最多约 10K。
- 将 `.grepai/` 加入 `.gitignore`,不要提交索引。
- 在重大变更前备份:实验前复制 `index.gob`。
- 更换 embedding model 后重新索引。
- 监控文件大小:索引超过 1GB 时迁移。
- 评估索引大小:小代码库约 5 MB,中代码库约 50 MB,大代码库约 500 MB。
- 评估搜索速度:小代码库 <50ms,中代码库 <200ms,大代码库 <1s。
适用边界 · 注意事项
- 不适合大型代码库(如 50K+ 文件)或索引超过 1GB 的场景;此时应迁移到 PostgreSQL 或 Qdrant。
- 不适合需要并发访问、团队共享索引或跨机器共享索引的场景;GOB 是单用户、无并发访问,且不能跨机器共享。
- 不推荐直接复制 `index.gob` 共享索引:必须使用完全相同的 embedding model,文件路径是绝对路径,不同机器代码版本可能不同。