用途
GrepAI Search Boosting 用于配置 GrepAI 的搜索结果分数加权(boosting),根据文件路径对搜索分数进行惩罚或奖励,从而调整结果的排序。其核心目标是让生产代码、核心业务逻辑等更相关的路径优先展示,同时降低测试、文档、第三方依赖和生成代码的排名。
主要能力
- 惩罚(Penalties):对匹配特定路径模式的文件降低搜索分数,因子小于 1.0。例如对 /tests/ 使用 factor 0.5,可将分数减半。
- 奖励(Bonuses):对匹配特定路径模式的文件提升搜索分数,因子大于 1.0。例如对 /src/ 使用 factor 1.1,可将分数提升 10%。
- 模式匹配:模式针对完整文件路径进行匹配,支持如 /tests/、_test.、.spec.、/src/ 等写法。
- 启用/禁用:可通过 enabled: true/false 控制是否启用 boosting,或直接移除 boost 配置段。
- 与忽略(Ignore)的区别:惩罚仅降低排名,文件仍可被搜索到;忽略则完全排除文件。
使用方式
在项目根目录的 .grepai/config.yaml 文件中配置 search.boost 节点。
基础配置示例:
# .grepai/config.yaml
search:
boost:
enabled: true
penalties:
- pattern: /tests/
factor: 0.5
bonuses:
- pattern: /src/
factor: 1.1
完整配置可包含多个惩罚和奖励条目,覆盖测试文件、文档、vendor/第三方、生成代码、示例等路径,以及核心源代码和重要目录。
配置后可通过以下命令验证效果:
grepai search "authentication"
grepai search "test authentication"
因子效果参考
| 因子 | 效果 | 典型用途 |
|---|---|---|
| 0.3 | 降低 70% | 强惩罚(vendor) |
| 0.5 | 降低 50% | 中等惩罚(测试) |
| 0.7 | 降低 30% | 轻度惩罚(示例) |
| 1.0 | 不变 | 中性 |
| 1.1 | 提升 10% | 轻度奖励(src) |
| 1.2 | 提升 20% | 中等奖励(core) |
| 1.5 | 提升 50% | 强奖励 |
适用场景
- 优先展示源代码而非测试文件。
- 降低 vendor/第三方代码的排名。
- 提升重要目录(如 core、services、handlers)的排名。
- 自定义搜索结果排序。
- 资料提供了标准项目、前端项目、Go 项目、Python 项目、Monorepo 等推荐配置示例,可按项目类型参考。
限制与注意事项
- 惩罚不会隐藏文件,仅降低排名;如需完全排除,应使用 ignore。
- 奖励可使分数超过 1.0,这是正常现象。
- 模式需出现在完整路径中,例如使用 /tests/ 而非仅 tests。
- 建议从惩罚开始,谨慎添加奖励,避免过度惩罚(测试通常 0.5 足够)。
- 资料未提供 GrepAI 的安装方式、收费信息或平台支持情况。