mcpField
G
grepai-search-boosting

grepai-search-boosting

github.com/yoanbernabeu开发20759 次安装38 周前更新
代码仓库

关于 grepai-search-boosting

grepai-search-boosting 是用于配置 grepai 搜索结果排序的技能,可按文件路径提高或降低匹配分数。它适合希望优先显示源代码、降低测试或第三方代码排名的开发者。

主要功能

  1. 01按路径规则调整搜索分数
  2. 02降低测试、文档或供应商代码排名
  3. 03提高指定目录的排名
  4. 04支持启用或关闭加权

适用场景

  1. 01让生产代码优先于测试文件
  2. 02降低第三方依赖代码的排序
  3. 03提高核心目录的搜索结果排名

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/yoanbernabeu/grepai-skills --skill grepai-search-boosting

安装后在 Claude Code 中输入/grepai-search-boosting确认已加载。

详细介绍

GrepAI 搜索加权

本技能介绍如何配置分数加权,优先显示相关代码路径,并降低测试、文档和供应商代码的优先级。

何时使用此技能

  • 提高源代码相对于测试的优先级
  • 降低供应商/第三方代码的优先级
  • 提高重要目录的优先级
  • 自定义结果排名

什么是加权?

加权会根据文件路径调整搜索分数:

Original score: 0.85 (src/auth.go)
Bonus (+10%):   0.935

Original score: 0.85 (tests/auth_test.go)
Penalty (-50%): 0.425

这样一来,内容相似的生产代码就会排在测试代码前面。

配置

基本配置
# .grepai/config.yaml
search:
  boost:
    enabled: true
    penalties:
      - pattern: /tests/
        factor: 0.5
    bonuses:
      - pattern: /src/
        factor: 1.1
完整配置
search:
  boost:
    enabled: true

    # Reduce scores (factor < 1.0)
    penalties:
      # Test files
      - pattern: /tests/
        factor: 0.5
      - pattern: /__tests__/
        factor: 0.5
      - pattern: _test.
        factor: 0.5
      - pattern: .spec.
        factor: 0.5
      - pattern: .test.
        factor: 0.5

      # Documentation
      - pattern: /docs/
        factor: 0.6
      - pattern: /documentation/
        factor: 0.6

      # Vendor/third-party
      - pattern: /vendor/
        factor: 0.3
      - pattern: /node_modules/
        factor: 0.3
      - pattern: /third_party/
        factor: 0.3

      # Generated code
      - pattern: /generated/
        factor: 0.4
      - pattern: .gen.
        factor: 0.4
      - pattern: .pb.go
        factor: 0.4

      # Examples and samples
      - pattern: /examples/
        factor: 0.7
      - pattern: /samples/
        factor: 0.7

    # Increase scores (factor > 1.0)
    bonuses:
      # Core source code
      - pattern: /src/
        factor: 1.1
      - pattern: /lib/
        factor: 1.1
      - pattern: /app/
        factor: 1.1
      - pattern: /core/
        factor: 1.2
      - pattern: /internal/
        factor: 1.1

      # Important directories
      - pattern: /services/
        factor: 1.1
      - pattern: /handlers/
        factor: 1.1
      - pattern: /controllers/
        factor: 1.1

各系数的作用

系数效果用例
0.3降低 70%大幅降权(供应商代码)
0.5降低 50%中度降权(测试)
0.7降低 30%轻度降权(示例)
1.0不变不调整
1.1提高 10%轻度加权(src)
1.2提高 20%中度加权(core)
1.5提高 50%大幅加权

模式匹配

模式会与完整文件路径进行匹配:

/project/src/auth/middleware.go
         ^^^^
         Matches "/src/" pattern
模式类型
模式匹配不匹配
/tests/src/tests/auth.gotests.go
_test.auth_test.gotest_auth.go
.spec.auth.spec.tsspec/auth.ts
/src/project/src/main.goresource/file.go

对排名的影响

未启用加权
Score: 0.85 | tests/auth_test.go:10-30
Score: 0.82 | src/auth/middleware.go:15-45
Score: 0.80 | src/auth/jwt.go:23-55
启用加权后
penalties:
  - pattern: /tests/
    factor: 0.5
bonuses:
  - pattern: /src/
    factor: 1.1
Score: 0.90 | src/auth/middleware.go:15-45  (0.82 × 1.1)
Score: 0.88 | src/auth/jwt.go:23-55        (0.80 × 1.1)
Score: 0.43 | tests/auth_test.go:10-30     (0.85 × 0.5)

常见配置

标准配置(推荐)
search:
  boost:
    enabled: true
    penalties:
      - pattern: /tests/
        factor: 0.5
      - pattern: _test.
        factor: 0.5
      - pattern: .spec.
        factor: 0.5
      - pattern: /vendor/
        factor: 0.3
      - pattern: /docs/
        factor: 0.6
    bonuses:
      - pattern: /src/
        factor: 1.1
      - pattern: /lib/
        factor: 1.1
前端项目
search:
  boost:
    enabled: true
    penalties:
      - pattern: /__tests__/
        factor: 0.5
      - pattern: .test.
        factor: 0.5
      - pattern: .spec.
        factor: 0.5
      - pattern: /node_modules/
        factor: 0.3
      - pattern: .stories.
        factor: 0.6
      - pattern: /storybook/
        factor: 0.6
    bonuses:
      - pattern: /src/
        factor: 1.1
      - pattern: /components/
        factor: 1.1
      - pattern: /hooks/
        factor: 1.1
Go 项目
search:
  boost:
    enabled: true
    penalties:
      - pattern: _test.go
        factor: 0.5
      - pattern: _mock.go
        factor: 0.5
      - pattern: /testdata/
        factor: 0.5
      - pattern: /vendor/
        factor: 0.3
      - pattern: .pb.go
        factor: 0.4
    bonuses:
      - pattern: /internal/
        factor: 1.1
      - pattern: /cmd/
        factor: 1.1
      - pattern: /pkg/
        factor: 1.1
Python 项目
search:
  boost:
    enabled: true
    penalties:
      - pattern: /tests/
        factor: 0.5
      - pattern: test_
        factor: 0.5
      - pattern: _test.py
        factor: 0.5
      - pattern: /conftest
        factor: 0.5
      - pattern: /fixtures/
        factor: 0.6
    bonuses:
      - pattern: /src/
        factor: 1.1
      - pattern: /app/
        factor: 1.1
      - pattern: /core/
        factor: 1.2
Monorepo
search:
  boost:
    enabled: true
    penalties:
      - pattern: /tests/
        factor: 0.5
      - pattern: _test.
        factor: 0.5
      - pattern: /packages/deprecated/
        factor: 0.3
      - pattern: /packages/legacy/
        factor: 0.4
    bonuses:
      - pattern: /packages/core/
        factor: 1.2
      - pattern: /packages/api/
        factor: 1.1
      - pattern: /packages/shared/
        factor: 1.1

禁用加权

完全禁用加权:

search:
  boost:
    enabled: false

也可以从配置中移除加权部分。

加权与忽略

方式效果用例
忽略完全排除依赖项、构建输出
降权仍可搜索,但排名较低测试、文档、示例
不调整默认排名常规源代码
加权排名较高核心业务逻辑
何时忽略,何时降权
  • 忽略: 永远不想搜索的文件(node_modules、.git)
  • 降权: 很少需要,但有时可能会用到的文件(tests、docs)

测试配置

配置加权后:

# Search and observe rankings
grepai search "authentication"

# Check if tests are properly deprioritized
grepai search "test authentication"  # Should still find tests, but ranked lower

最佳实践

  1. 先设置降权: 首先降低测试/供应商代码的优先级
  2. 谨慎添加加权: 只针对真正重要的路径
  3. 使用实际查询进行测试: 确认结果合理
  4. 不要过度降权: 对测试使用 0.5 通常就足够了
  5. 记录选择理由: 在配置中添加注释

常见问题

❌ 问题: 测试总是排在最前面
✅ 解决方案: 根据测试文件的命名规则添加降权模式

❌ 问题: 找不到降权路径中的代码
✅ 解决方案: 降权只会降低排名,不会隐藏内容。若要完全排除,请使用忽略。

❌ 问题: 分数高于 1.0 似乎不对
✅ 解决方案: 加权可以使分数超过 1.0,这是正常的

❌ 问题: 模式未匹配
✅ 解决方案: 检查模式是否出现在完整路径中(使用 /tests/,而不只是 tests)

输出格式

加权配置状态:

✅ Search Boosting Configured

   Status: Enabled

   Penalties (5):
   - /tests/      → 0.5 (50% reduction)
   - _test.       → 0.5
   - .spec.       → 0.5
   - /vendor/     → 0.3 (70% reduction)
   - /docs/       → 0.6

   Bonuses (3):
   - /src/        → 1.1 (10% boost)
   - /lib/        → 1.1
   - /core/       → 1.2 (20% boost)

   Effect: Source code ranks higher than tests with similar content

评论

支持 Markdown