为知笔记已经用了快3年了,里面也累积了2000多篇的笔记,最近换了 Mac 电脑,但是 Mac 版的功能跟Windows 版差太多了,不是很好用,而且 Mac 版的为知笔记在没有网络的时候,无法使用全文搜索。如果去参加 CTF 线下赛,被屏蔽网络,就没法搜索笔记了,只能用脑补,也导致了为知笔记变得很鸡肋,一度想要换个笔记工具。
分析了一下为知笔记的存储,格式很简单,用了 sqlite 来存储元数据,然后每篇笔记其实是用 ZIP 压缩,将 html 和 网页的图片等内容达成一个压缩包。既然这么简单,那不然自己开发一个全文搜索功能。一开始有考虑要在为知笔记的客户端开源代码上修改,但是用C++写的,看不懂,也懒得去改。
最后选择了使用 whoosh 和 jieba 分词建立了离线搜索功能,whoosh 是纯 Python 写的一个搜索引擎,使用简单,基本上满足需求。项目代码开源在 GitHub 上 wiz-search,具体实现可以查看代码,欢迎使用。
使用方法
- pip3 install -r requirements.txt
- 复制 config.py.example 为 config.py
- 修改 WIZ_NOTE_PATH 为正确的路径
- 运行 index.py 创建或更新索引
- 启动 app.py
- search anything