name: leann-search description: 使用LEANN向量索引在代码库中进行语义搜索 allowed-tools: [Bash, Read]
LEANN语义搜索
使用LEANN进行基于含义的代码搜索,替代grep。
何时使用
- 概念性查询:“身份验证如何工作”,“错误在哪里处理”
- 理解模式:“流式实现”,“提供者架构”
- 查找相关代码:语义相似但使用不同术语的代码
何时不使用
- 精确匹配:使用Grep进行
class Foo、def bar、特定标识符 - 正则表达式模式:使用Grep进行
error.*handling、import.*from - 文件路径:使用Glob进行
*.test.ts、src/**/*.py
命令
# 搜索当前项目的索引
leann search <index-name> "<查询>" --top-k 5
# 列出可用索引
leann list
# 示例
leann search rigg "提供者如何处理流式" --top-k 5
MCP工具(在Claude代码中)
leann_search(index_name="rigg", query="您的语义查询", top_k=5)
重建索引
当代码库发生重大变化时:
cd /path/to/project
leann build <项目名称> --docs src tests scripts \
--file-types '.ts,.py,.md,.json' \
--no-recompute --no-compact \
--embedding-mode sentence-transformers \
--embedding-model all-MiniLM-L6-v2
工作原理
- LEANN使用句子嵌入来理解含义
- 搜索找到概念上相似的代码,不仅仅是文本匹配
- 结果按语义相似度得分(0-1)排名
Grep vs LEANN决策
| 查询类型 | 工具 | 示例 |
|---|---|---|
| 自然语言 | LEANN | “缓存如何工作” |
| 类/函数名 | Grep | “class CacheManager” |
| 模式匹配 | Grep | error|warning |
| 查找实现 | LEANN | “速率限制逻辑” |