🔍 查询命令 (query)
返回目录
功能
提供笔记查询功能,支持原文查看、元数据查询、语义搜索和 RAG 问答。
子命令总览
| 子命令 |
操作层 |
说明 |
show |
文件层 |
查看笔记原文 |
list |
关系层 |
列出笔记列表 |
info |
关系层 |
查看笔记详情 |
search |
向量层 |
语义搜索 |
export |
文件层 |
导出笔记(Obsidian) |
ask |
RAG 层 |
RAG 问答 |
文件层
查看笔记原文 (show)
show: 功能
查看指定笔记的完整原始内容(Markdown 文本)。
show: 参数
| 参数 |
缩写 |
说明 |
默认值 |
filename |
- |
笔记文件名(位置参数) |
必填 |
--lines |
- |
只显示前 N 行 |
全部 |
--json |
- |
输出到 JSON 文件 |
stdout(使用时须指定文件路径) |
show: 使用示例
# 查看笔记原文
algonotes query show fenwick.md
# 只显示前 50 行
algonotes query show segment-tree.md --lines 50
# 输出到 JSON 文件
algonotes query show dijkstra.md --json output.json
show: 输出示例
# 树状数组 (Fenwick Tree)
## 模板
int tree[N];
void add(int x, int val) {
for (; x <= n; x += x & -x) tree[x] += val;
}
int query(int x) {
int res = 0;
for (; x > 0; x -= x & -x) res += tree[x];
return res;
}
## 应用
### 逆序对
...
show: 依赖模块
| 模块 |
职责 |
src/store/file_store.py |
文件读取 |
src/store/sql_store.py |
笔记查找 |
show: 注意事项
- 笔记不存在:输出提示信息并退出
- 行数限制:
--lines 同时限制终端输出和 JSON 输出的行数,line_count 为截断后的行数
show: JSON 输出格式
{
"filename": "fenwick.md",
"content": "# 树状数组 (Fenwick Tree)\n\n## 模板\n\n```cpp\n...",
"line_count": 120
}
关系层
列出笔记 (list)
list: 功能
列出已导入的笔记,支持按标签筛选。
list: 参数
| 参数 |
缩写 |
说明 |
默认值 |
--tag |
- |
按标签筛选 |
无 |
--verbose |
-v |
显示详细信息 |
False |
--json |
- |
输出到 JSON 文件 |
stdout(使用时须指定文件路径) |
list: 使用示例
# 列出所有笔记
algonotes query list
# 按标签筛选
algonotes query list --tag 树状数组
# 显示详细信息
algonotes query list -v
# 输出到 JSON 文件
algonotes query list --json notes.json
list: 输出示例
笔记列表
┏━━━━┳━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ ID ┃ 文件名 ┃ 标签 ┃ 入库时间 ┃
┡━━━━╇━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ 1 │ fenwick.md │ 树状数组,模板 │ 2026-06-16 │
│ 2 │ segment-tree.md │ 线段树,数据结构 │ 2026-06-15 │
│ 3 │ dijkstra.md │ 图论,最短路 │ 2026-06-14 │
└────┴────────────────────────┴──────────────────┴────────────┘
list: 依赖模块
| 模块 |
职责 |
src/store/sql_store.py |
笔记列表查询、标签筛选 |
list: 注意事项
- 无笔记时:返回空列表,不报错
list: JSON 输出格式
[
{
"id": 1,
"filename": "fenwick.md",
"filepath": "data/files/fenwick.md",
"title": "树状数组",
"tags": "树状数组,模板",
"source_url": null,
"content_hash": "a1b2c3d4...",
"ingested_at": "2026-06-16 14:30:22",
"updated_at": null,
"chunk_count": 8,
"file_size": 4320
}
]
查看笔记详情 (info)
info: 功能
查看指定笔记的详细元数据。
info: 参数
| 参数 |
缩写 |
说明 |
默认值 |
filename |
- |
笔记文件名(位置参数) |
与 --id 二选一 |
--id |
- |
笔记 ID |
与 filename 二选一 |
--json |
- |
输出到 JSON 文件 |
stdout(使用时须指定文件路径) |
info: 使用示例
# 按文件名查看
algonotes query info fenwick.md
# 按 ID 查看
algonotes query info --id 1
# 输出到 JSON 文件
algonotes query info fenwick.md --json info.json
info: 输出示例
笔记详情:
ID: 1
文件名: fenwick.md
路径: data/files/fenwick.md
标题: 树状数组
标签: 树状数组,模板
分块数: 8
文件大小: 4.2 KB
入库时间: 2026-06-16 14:30:22
info: 依赖模块
| 模块 |
职责 |
src/store/sql_store.py |
元数据查询 |
src/store/file_store.py |
文件读取 |
info: 注意事项
- 笔记不存在:输出提示信息并退出
- 参数互斥:
filename 和 --id 必须提供其一
info: JSON 输出格式
{
"id": 1,
"filename": "fenwick.md",
"filepath": "data/files/fenwick.md",
"title": "树状数组",
"tags": "树状数组,模板",
"source_url": null,
"content_hash": "a1b2c3d4...",
"ingested_at": "2026-06-16 14:30:22",
"updated_at": null,
"chunk_count": 8,
"file_size": 4320
}
向量层
语义搜索 (search)
search: 功能
仅执行语义检索,返回相关文档片段。
search: 参数
| 参数 |
缩写 |
说明 |
默认值 |
query |
- |
搜索关键词(位置参数) |
必填 |
--top-k |
- |
返回结果数量 |
5 |
--json |
- |
输出到 JSON 文件 |
stdout(使用时须指定文件路径) |
search: 使用示例
# 语义搜索
algonotes query search "动态规划优化"
# 限制返回数量
algonotes query search "图论" --top-k 3
# 输出到 JSON 文件
algonotes query search "树状数组" --json results.json
search: 输出示例
找到 3 条相关结果:
[1] 来自: dp_optimization.md
内容: 斜率优化 DP 适用于形如 dp[i] = min(dp[j] + ...) 的转移方程...
[2] 来自: knapsack.md
内容: 01 背包可以用滚动数组优化空间复杂度...
search: 依赖模块
| 模块 |
职责 |
src/store/vector_store.py |
向量检索 |
search: 注意事项
- 无匹配结果:返回空列表,不报错
search: JSON 输出格式
{
"query": "动态规划优化",
"results": [
{
"source": "dp_optimization.md",
"content": "斜率优化 DP 适用于形如 dp[i] = min(dp[j] + ...) 的转移方程...",
"metadata": {
"chunk_index": 2,
"header_h2": "斜率优化"
}
}
]
}
RAG 问答 (ask)
以下功能在 scripts/rag.py 中已实现,通过 src/rag/agent.py 的 RAG Agent 提供。
ask: 功能
调用 RAG Agent 进行单次问答,输出带溯源引用的答案。
ask: 参数
| 参数 |
缩写 |
说明 |
默认值 |
question |
- |
查询问题(位置参数) |
必填 |
--top-k |
- |
检索结果数量 |
5 |
--stream |
- |
流式输出 |
False |
--json |
- |
输出到 JSON 文件 |
stdout(使用时须指定文件路径) |
ask: 使用示例
# RAG 问答
algonotes query ask "树状数组如何求逆序对?"
# 指定检索数量
algonotes query ask "最短路算法对比" --top-k 5
# 流式输出
algonotes query ask "线段树懒标记" --stream
# 输出到 JSON 文件
algonotes query ask "树状数组" --json result.json
ask: 输出示例
树状数组可以用来求逆序对,核心思想是利用其前缀和查询能力...
ask: 依赖模块
| 模块 |
职责 |
scripts/rag.py |
ask_question 入口 |
src/rag/agent.py |
RAG Agent 编排 |
src/rag/retriever.py |
检索工具(search_notes / get_file_content / search_by_tags) |
src/rag/generation.py |
重排序工具(rerank_results) |
src/store/vector_store.py |
向量检索 |
src/store/sql_store.py |
标签匹配 |
src/store/file_store.py |
文件读取 |
ask: 注意事项
- 笔记不存在:返回空结果,不报错
- LLM 调用失败:返回错误信息
- 流式输出:
--stream 时实时输出 Agent 思考过程
ask: JSON 输出格式
{
"question": "树状数组如何求逆序对?",
"answer": "树状数组可以用来求逆序对...",
"success": true,
"error": null
}
query: 输出示例
问题:树状数组如何求逆序对?
答案:
树状数组可以用来求逆序对,核心思想是利用其前缀和查询能力...
溯源引用:
- [个人: fenwick.md#逆序对]
- [个人: inversion.md#树状数组应用]
query: 依赖模块
| 模块 |
职责 |
src/rag/agent.py |
RAG Agent 编排 |
src/rag/retriever.py |
检索工具(search_notes / get_file_content / search_by_tags) |
src/rag/generation.py |
重排序工具(rerank_results) |
src/store/vector_store.py |
向量检索 |
src/store/sql_store.py |
标签匹配 |
src/store/file_store.py |
文件读取 |
query: 注意事项
- 笔记不存在:返回空结果,不报错
- LLM 调用失败:返回错误信息
- 流式输出:
--stream 时实时输出 Agent 思考过程
query: JSON 输出格式
{
"question": "树状数组如何求逆序对?",
"answer": "树状数组可以用来求逆序对,核心思想是利用其前缀和查询能力...",
"references": [
{
"source": "fenwick.md",
"section": "逆序对",
"type": "personal"
}
]
}
文件层
导出笔记 (export)
export: 功能
导出笔记为带 YAML frontmatter 的 Markdown 文件,兼容 Obsidian。
export: 参数
| 参数 |
缩写 |
说明 |
默认值 |
filename |
- |
笔记文件名(位置参数) |
与 --all 二选一 |
--all |
- |
导出所有笔记 |
False |
-o |
--output |
输出目录 |
./export |
--json |
- |
输出到 JSON 文件 |
stdout |
export: 使用示例
# 导出单个笔记
algonotes query export fenwick.md
# 导出到指定目录
algonotes query export fenwick.md -o ./my_exports
# 导出所有笔记
algonotes query export --all
# 输出到 JSON 文件
algonotes query export fenwick.md --json result.json
export: 输出示例
Exported fenwick.md to ./export/fenwick.md
export: YAML Frontmatter 格式
---
title: "树状数组"
type: "note"
tags: [树状数组, 数据结构, 模板]
author: "fangtianchen"
ingested_at: 2026-06-16 14:30:22
updated_at: 2026-06-20 10:00:00
source_url: "https://..."
---
# 树状数组 (Fenwick Tree)
## 模板
...
export: 依赖模块
| 模块 |
职责 |
src/store/sql_store.py |
笔记元数据查询 |
src/store/file_store.py |
文件读取 |
export: 注意事项
- 笔记不存在:输出错误信息
- 输出目录:自动创建不存在的目录
- 覆盖文件:同名文件会被覆盖