用途
GrepAI Search Basics 是 GrepAI 技能集中用于学习语义代码搜索基础概念的技能。它帮助开发者掌握 GrepAI 的基本搜索命令、理解语义搜索与文本搜索的差异,并学会解读搜索结果。
主要能力
语义搜索与文本搜索的区别
传统文本搜索(grep、ripgrep)按精确字符串匹配,例如搜索 "login" 只会找到包含 "login" 的代码,会遗漏 login、signin、auth 等同义词。GrepAI 的语义搜索按含义相似度匹配,例如查询 "authenticate user" 可以找到 login、auth、signin 相关代码。
基本搜索命令
grepai search "your query here"
示例:
grepai search "user authentication flow"
结果格式解读
每条结果包含:
- Score:相似度,0.0 到 1.0,越高越相关
- 文件路径:代码所在位置
- 行号:代码块的起始-结束行
- 内容:实际代码
分数含义分级:
- 0.90+:极佳匹配
- 0.80-0.89:良好匹配
- 0.70-0.79:相关
- 0.60-0.69:弱相关
- <0.60:弱匹配
限制结果数量
默认返回 10 条结果,可用 --limit 调整:
# 只取前 3 条
grepai search "database queries" --limit 3
# 取更多结果
grepai search "error handling" --limit 20
检查索引状态
搜索前可用以下命令验证索引:
grepai status
输出示例:
✅ GrepAI Status
Index:
- Files: 245
- Chunks: 1,234
- Last updated: 2 minutes ago
Ready for search.
使用方式
前提条件
- 已执行 grepai init 初始化
- 已执行 grepai watch 创建索引
- 嵌入提供者(如 Ollama 等)正在运行
编写有效查询
好的查询(描述意图或行为):
grepai search "validate user credentials"
grepai search "handle HTTP request errors"
grepai search "connect to the database"
grepai search "send email notification"
grepai search "parse JSON configuration"
效果较差的查询(过短或过于笼统):
grepai search "auth" # 太模糊
grepai search "function" # 太笼统
grepai search "getUserById" # 精确名称,应使用 grep
GrepAI 支持自然语言查询:
# 提问式
grepai search "how are users authenticated"
grepai search "where is the database connection configured"
# 描述行为
grepai search "code that sends emails to users"
grepai search "functions that validate input data"
多个词与短语均可,但短语通常效果更好:
# 多个词(类似 OR 行为)
grepai search "login password validation"
# 短语(描述具体意图)
grepai search "validate user login credentials"
快速提示
- 使用英文:模型基于英文训练
- 具体明确:用 "JWT token validation" 而非 "validation"
- 描述意图:说明代码做什么,而非它叫什么
- 使用 3-7 个词:足够上下文,不过于冗长
- 迭代优化:根据结果调整查询
常见搜索模式
查找入口点:
grepai search "main entry point"
grepai search "application startup"
grepai search "HTTP server initialization"
查找错误处理:
grepai search "error handling and logging"
grepai search "exception handling"
grepai search "error response to client"
查找数据访问:
grepai search "database query execution"
grepai search "fetch user from database"
grepai search "save data to storage"
查找业务逻辑:
grepai search "calculate order total"
grepai search "process payment transaction"
grepai search "validate business rules"
适用场景
- 学习 GrepAI 搜索
- 执行基本代码搜索
- 理解语义搜索与文本搜索的区别
- 解读搜索结果
限制与故障排查
无结果
- 检查索引是否存在:grepai status
- 若索引为空,运行 grepai watch
- 简化查询
结果不相关
- 更具体地描述
- 换用不同词语
- 确认代码是否存在于代码库中
缺失预期代码
- 检查文件是否在配置中被忽略
- 确认文件扩展名受支持
- 重新索引:rm .grepai/index.gob && grepai watch
输出格式
成功的基本搜索输出示例:
Query: "user authentication flow"
Results: 5 matches
Score: 0.89 | src/auth/middleware.go:15-45
──────────────────────────────────────────
[relevant code...]
Score: 0.82 | src/auth/jwt.go:23-55
──────────────────────────────────────────
[relevant code...]
[additional results...]
Tip: Use --limit to adjust number of results
Use --json for machine-readable output
关于收费、价格、平台支持范围等信息,资料中暂未提供。