--- title: "File Watcher (Auto-Reindex)" type: concept tags: [automation, file-system, indexing, realtime] sources: [semantic-memory-search] last_updated: 2026-04-22 --- ## Aliases - File Watcher - 文件监视器 - 文件监听 - Auto-Reindex - 自动重建索引 ## Definition 文件监视器是一种实时监控指定目录文件变化的机制,当文件被创建、修改或删除时,自动触发相应的索引更新操作。在语义搜索场景中,这意味着记忆文件的变更会即时反映到向量索引中,保持索引与源文档的同步,无需手动重新运行索引命令。 ## How It Works ``` 文件系统事件 → 检测到变更 → 触发回调: - 文件创建 → 计算哈希,Embedding,存入向量数据库 - 文件修改 → 重新计算哈希,更新向量数据库记录 - 文件删除 → 从向量数据库移除对应记录 ``` ## Implementation Patterns | 方式 | 工具 | 说明 | |------|------|------| | 轮询 | `watchdog` (Python) | 跨平台,跨语言,通用 | | 系统事件 | inotify (Linux) / FSEvents (macOS) / ReadDirectoryChangesW (Windows) | 高效,仅 Linux/macOS/Windows 原生 | | cron 批处理 | `*/5 * * * *` | 简单,不实时,适合低频场景 | | Webhook | Git post-commit hook | 适合 Git 管理的文档 | ## Use Case in memsearch memsearch 的 `memsearch watch` 命令使用文件监视器自动追踪记忆目录变化: ```bash memsearch watch ~/path/to/your/memory/ # 持续监控,新增/修改文件自动触发增量索引 ``` ## Benefits - **实时同步**:索引始终反映最新文档状态 - **零手动操作**:无需人工干预,忘记索引更新也不怕 - **节省成本**:基于 [[Content Hashing]] 的增量机制,仅处理实际变化部分 ## Connections - [[semantic-memory-search]] — 文件监视器是 memsearch 保持索引实时的核心功能 - [[memsearch]] — memsearch 内置文件监视器实现 - [[Content Hashing]] — 文件监视器的增量触发依赖内容哈希比对