From ac966af3d126d59081d119e05ba02f946257f669 Mon Sep 17 00:00:00 2001 From: ai_xiaopei <xiaopei@aisim.cn> Date: Sun, 26 Jul 2026 23:22:36 +0800 Subject: [PATCH] fix: 移除所有help中的等号格式 --- README.md | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 150 insertions(+), 0 deletions(-) diff --git a/README.md b/README.md new file mode 100644 index 0000000..fb6dd96 --- /dev/null +++ b/README.md @@ -0,0 +1,150 @@ +# kb-cli + +知识库 CLI 工具,支持 Obsidian 风格 Markdown 文件的图谱搜索。 + +## 功能特性 + +- ✅ **Vault 解析器**:解析 Obsidian frontmatter、标签、实体、wikilinks +- ✅ **知识图谱构建**:文件 → 节点,标签/实体/wikilinks → 边 +- ✅ **SQLite 存储**:高效持久化,支持增量更新 +- ✅ **FTS5 全文搜索**:基于 SQLite FTS5 的快速搜索 +- ✅ **图谱评分算法**:考虑标签、实体、wikilinks 权重 +- ✅ **多种输出格式**:表格、JSON +- ✅ **内容返回**:`--with-content` 返回完整文件内容 +- ✅ **关联链接**:`--with-links` 返回 wikilink 关联文档 + +## 安装 + +```bash +# 编译 +make build + +# 安装到 ~/go/bin +make install + +# 运行测试 +make test +``` + +**注意**:需要 CGO 和 FTS5 支持。 + +## 使用方法 + +### 搜索 + +```bash +# 基础搜索 +kb-cli search 充装规格 + +# 带扩展词 +kb-cli search 充装 --expanded 重量,规格 + +# 带症状词 +kb-cli search 充装失败 --symptom 报错,无法启动 + +# 返回完整文件内容 +kb-cli search 充装规格 --with-content + +# 返回关联文档链接 +kb-cli search 充装规格 --with-links + +# 同时返回内容和链接 +kb-cli search 充装规格 --with-content --with-links + +# JSON 输出 +kb-cli search 充装 --json + +# 限制结果数 +kb-cli search 充装 --top 5 +``` + +### 索引管理 + +```bash +# 构建/重建索引 +kb-cli index build + +# 查看索引状态 +kb-cli index status + +# 清理孤立节点 +kb-cli index gc +``` + +### Git 同步 + +```bash +# 同步知识库到 Git 仓库 +kb-cli git sync +``` + +### 全局选项 + +```bash +--vault 知识库路径(默认:~/aisim/note/001/笔记001) +--db 索引数据库路径(默认:~/.cache/kb-cli/kb.db) +``` + +## 项目结构 + +``` +kb-cli/ +├── cmd/ # CLI 命令 +│ ├── root.go # 根命令 +│ ├── search.go # search 命令 +│ ├── index.go # index 命令 +│ └── rebuild.go # 索引重建逻辑 +├── internal/ +│ ├── vault/ # Vault 解析器 +│ │ ├── parser.go +│ │ ├── scanner.go +│ │ └── sections.go +│ ├── graph/ # 知识图谱 +│ │ ├── model.go +│ │ └── builder.go +│ ├── index/ # SQLite 存储 +│ │ ├── sqlite.go +│ │ ├── fts.go +│ │ └── cache.go +│ ├── search/ # 搜索引擎 +│ │ ├── engine.go +│ │ └── scorer.go +│ └── output/ # 输出格式化 +│ └── formatter.go +└── main.go +``` + +## 评分算法 + +搜索结果评分考虑: +- **FTS5 rank**:全文搜索相关性 +- **标签匹配**:标签权重 2.0 +- **实体匹配**:实体权重 1.5 +- **Wikilinks**:引用关系权重 1.2 +- **扩展词加成**:提升相关实体权重 + +## 开发 + +```bash +# 运行所有测试 +make test + +# 详细测试输出 +make test-v + +# 构建并运行 +make build +./bin/kb search 充装 +``` + +## 依赖 + +- Go 1.21+ +- SQLite3(带 FTS5 支持) +- github.com/mattn/go-sqlite3 +- github.com/spf13/cobra +- gopkg.in/yaml.v3 + +## 许可证 + +MIT -- Gitblit v1.9.1