风铃草 中文站
早期探索 2026.05 — 2026.07 · 原型

Notebit

本地优先的索引

面向本地 Markdown 笔记库的实时文件监听、异步并发索引与多策略检索桌面工具;需求方向与工作流由本人提出,具体实现由 AI 辅助落地。

  • Go
  • Wails
  • React
  • SQLite
  • fsnotify
  1. fsnotify 监听 Markdown 文件变更
  2. 去重队列 合并短时间内的重复事件
  3. Worker Pool 并发索引,限制同时写入
  4. SQLite / GORM 写入本地索引与元数据
  5. 检索 关键词、片段与 RAG 探索
本地索引管线。监听与索引异步运行,查询读取已写入的索引。

缘起

我的个人图书馆里攒了快两百篇 Markdown 笔记。文件多了之后,光靠目录层级和记忆找东西越来越费劲,每次想翻出半年前写过的某段话,都像是在人肉 grep 自己的过去(经常还搜不到喵)。

因此我提出了 Notebit 的构想:坚持本地优先,在后台实时监听文件修改,异步更新索引,再用关键词和语义片段把散落的笔记重新串起来。所有数据都留在本地硬盘里,不依赖云端同步。

管线

文件写入、变更监听、构建索引和查询检索在工程上是四件节奏完全不同的事。如果偷懒把它们塞进同一个同步函数里,磁盘上稍微改几个文件就会把界面卡死;所以整条管线被拆成了彼此解耦、可以独立重试的五个阶段。

证据

  • 01

    真实的本地数据库:个人图书馆/data/notebit.sqlite 里保留了日常笔记库的真实索引数据,并非空跑的演示样本。

  • 02

    文件监听与异步索引队列:从 fsnotify 事件捕获、防抖去重到 Worker Pool 并发入库,整条链路都在本地笔记库上实际跑通。

  • 03

    产品形态探索:尝试把传统的「单次搜索框」延伸成「写作 — 召回旧笔记 — 再思考」的本地知识流。

边界

方向由我提出,落地由 AI 辅助,仍属于早期探索。

  • 项目的需求痛点、工作流设计与验收判断由本人主导提出;具体代码实现大量借助了 AI 辅助,并非逐行手写。
  • 召回与检索质量还没有做过量化的评测基准;文档里提到的 RAG 目前只是原型探索,还谈不上稳定的生成效果。
  • 不做云同步、多人协作与移动端适配,最初就是为了解决我自己本地笔记库的检索痛点。
  • 界面交互和切块索引策略后续还会继续推翻重调,当前版本主要是为了验证「本地优先 + 异步索引」这条路子走不走得通。