Obsidian Index Service

Obsidian Index Service

site icon
2025.03.23 1
Python笔记索引同步工具内容生成
Obsidian Index Service 是一个用于监控和索引 Obsidian 笔记库中 Markdown 文件的服务。它将文件的元数据和完整内容存储到 SQLite 数据库中,支持文件变更的实时跟踪(创建、修改、删除)。该服务最初是为 `mcp-server` 项目设计的,但后来转向使用 Obsidian 插件 API 实现。尽管如此,它仍然可以作为一个通用的笔记索引器或同步工具使用。
View on GitHub

Overview

基本能力

产品定位

Obsidian Index Service 是一个笔记索引和同步工具,专注于为 Obsidian 笔记库提供实时的文件变更跟踪和数据库索引功能。

核心功能

  • 文件变更跟踪:实时监控 Obsidian 笔记库中的文件变更(创建、修改、删除)。
  • 元数据提取:从 Markdown 文件中提取路径、标题、父文件夹、标签、创建/修改日期等元数据。
  • 内容索引:将文件的完整内容存储到 SQLite 数据库中。
  • 数据库支持:使用 SQLite 数据库存储索引数据,支持 WAL(Write-Ahead Logging)模式以提高并发性能。
  • Docker 支持:提供容器化部署选项,方便与其他服务集成。

适用场景

  • 笔记索引:为 Obsidian 笔记库提供实时的文件索引功能。
  • 同步工具:作为笔记同步工具,支持本地和远程同步(未来计划)。
  • 开发集成:与其他开发工具(如 mcp-server)集成,提供笔记数据的实时访问。

工具列表

  • SQLite 数据库:存储笔记的元数据和完整内容。
  • Docker:支持容器化部署和与其他服务的集成。
  • Python 脚本:提供命令行工具,支持手动扫描和实时监控。

常见问题解答

  • 如何解决文件变更未触发索引的问题? 确保文件变更事件被正确捕获,检查文件系统的监控设置。
  • 如何与其他服务共享数据库? 使用 Docker 卷挂载数据库文件,其他服务可以以只读方式访问。

使用教程

使用依赖

  • Python 3.12 或更高版本
  • Docker 和 Docker Compose(用于容器化部署)
  • uv(可选,推荐使用)

安装教程

  1. 克隆仓库: bash git clone https://github.com/pmmvr/obsidian-index-service.git cd obsidian-index-service

  2. 设置虚拟环境:

  3. 使用 uv(推荐): bash uv venv source .venv/bin/activate # Linux/macOS .venv\Scripts\activate # Windows
  4. 使用 python(标准): bash python -m venv .venv source .venv/bin/activate # Linux/macOS .venv\Scripts\activate # Windows

  5. 安装依赖:

  6. 使用 uv(推荐): bash uv sync # Installs from uv.lock uv pip install pytest pytest-bdd pytest-mock # For tests
  7. 使用 pipbash pip install -e . pip install pytest pytest-bdd pytest-mock # For tests

调试方式

  1. 设置环境变量: bash export OBSIDIAN_VAULT_PATH=/path/to/vault export DB_PATH=/path/to/notes.sqlite

  2. 运行服务: bash python main.py 或使用 uvbash uv run python main.py

  3. 执行一次性扫描: bash python main.py --scan-only 或使用 uvbash uv run python main.py --scan-only

  4. 使用 Docker 运行: bash docker-compose up -d

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。