he search¶
对知识库执行语义搜索。
概要¶
参数¶
| 参数 | 描述 |
|---|---|
KA_PATH |
知识库目录的路径 |
QUERY |
搜索查询字符串 |
选项¶
| 选项 | 简写 | 描述 | 默认值 |
|---|---|---|---|
--top-k |
-n |
返回结果数量 | 3 |
--source |
— | 范围限定:仅返回这些来源文档贡献的知识(可重复) | — |
--tag |
— | 范围限定:仅返回带有这些标签的来源贡献的知识(可重复) | — |
描述¶
语义搜索即使在关键词不完全匹配时也能找到相关信息。它使用:
- 向量嵌入 — 将查询和内容转换为向量
- 相似度匹配 — 找到语义相似的内容
- 排名 — 返回最相关的结果
要求:必须构建搜索索引。如有需要,运行 he build-index。
示例¶
基本搜索¶
获取更多结果¶
自然语言查询¶
构建索引后¶
输出格式¶
Found 3 result(s):
Result 1:
{
"name": "苏轼",
"type": "人物",
"description": "北宋文学家、书画家,号东坡居士"
}
Result 2:
{
"source": "苏轼",
"target": "欧阳修",
"type": "师生",
"description": "欧阳修赏识苏轼才华,预言其将超越自己"
}
Result 3:
...
工作原理¶
- 查询嵌入 — 将您的查询转换为向量
- 索引搜索 — 在知识库中找到最近的向量
- 结果排名 — 返回 top-k 最相似的项目
更好搜索的技巧¶
- 使用自然语言 — "电气工程方面的发明" vs "发明 电气"
- 要具体 — "苏轼在词作方面的成就" vs "苏轼 成就"
- 尝试同义词 — 如果 "发明" 不行,尝试 "发现"
- 增加 top-k — 使用
-n 10获取更广泛的结果
范围搜索¶
使用 --source(指定来源文档)或 --tag(带有该标签的任意来源 —— 标签用 he tag 管理)将搜索限定到部分来源:
# 仅搜索带有 `legal` 标签的来源贡献的知识
he search ./ka/ "终止条件" --tag legal
# 仅搜索两个指定文档贡献的知识
he search ./ka/ "终止条件" --source contract-2024 --source annex-b
--source 与 --tag 以并集方式组合:只要某个键的任一贡献来源满足任一过滤条件,该键即匹配。
范围限定要求知识库在摄入时带有
--source,这样来源台账才会存在 —— 见来源标注与溯源。
与 he talk 的比较¶
| 功能 | he search |
he talk |
|---|---|---|
| 返回 | 原始实体/关系 | 自然语言答案 |
| 用例 | 查找特定数据 | 获取解释 |
| 速度 | 更快 | 更慢(LLM 生成) |
| 精度 | 精确匹配 | 解释性 |
故障排除¶
"未找到索引"¶
构建搜索索引:
"未找到结果"¶
尝试:
1. 更广泛的查询词
2. 增加 -n 获取更多结果
3. 不同的措辞
4. 检查 he info ./output/ 验证数据存在
另请参见¶
he talk— 与知识库对话he build-index— 构建搜索索引he parse— 带索引构建的提取