作为一个C++程序员,我给自己写了个「搜忆」——本地文件语义搜索工具

你有没有过这种经历:明明记得写过一篇技术笔记,但就是找不到它在哪。文件名想不起来,只记得大概内容。用系统搜索只能按文件名匹配,全盘搜一遍要等半天。

这个问题困扰了我很久。

我试过了 Everything(只能按文件名)、Windows 自带搜索(慢到怀疑人生)、各种笔记软件的搜索(只搜笔记不搜文件)。没有一个能真正做到用一句话描述内容,就能找到对应文件

所以我决定自己写一个。


什么是「搜忆」

搜忆是一款本地文件语义搜索桌面工具,用自然语言描述你要找的内容,它能理解你的意思,而不是只匹配文件名。

举个例子:

你输入的 传统搜索 搜忆
"上周写的关于性能优化的笔记" ❌ 找不到 ✅ 匹配到 Qt性能调优实战.md
"那个讲OAuth认证的PDF" ❌ 需要精确文件名 ✅ 匹配到 OAuth2.0协议详解.pdf
"项目报价相关的表格" ❌ 无结果 ✅ 匹配到 客户A报价单.xlsx

一句话概括:你记得大概内容,搜忆帮你找到精确文件。


为什么不用现有的工具?

你可能会问:Everything、Listary、AnyTXT 不好用吗?

说实话,它们各有所长,但都有一个共同的局限------基于关键词匹配,不理解语义

  • Everything:文件名搜索王者,但你记不住文件名时就废了
  • AnyTXT:能搜文件内容,但本质还是关键词全文匹配
  • 各种AI搜索:理解语义,但要把文件上传到云端,隐私风险大

搜忆的定位很明确:语义理解 + 本地运行 + 中文优化


搜忆的三个核心优势

1. 真正的语义搜索

不是简单的分词匹配,而是基于向量嵌入的语义理解。

你搜"怎么让电脑跑得更快",它能匹配到标题为"CPU性能调优指南"的文件------因为语义是相近的。

底层使用轻量级 embedding 模型,在本地完成向量化和相似度计算,不需要联网

2. C++/Qt 原生性能

这不是一个 Electron 套壳应用。

搜忆使用 C++ 和 Qt 原生开发,从底层保证了指纹级的资源占用和流畅的操作体验。相比 Web 技术栈套壳的同类产品,原生开发带来的是实实在在的快和省。

3. 中文深度优化

市面上大多数语义搜索工具是为英文设计的。中文面临分词歧义、同义词多、表达灵活等问题。

搜忆在以下方面做了针对性优化:

  • 中文分词:基于 jieba 定制的领域分词策略
  • 同义词扩展:"优化"="调优"="提速"="加速"
  • 模糊意图理解:"那个什么文档" 类口语化表达也能处理

实际使用场景

场景一:程序员找技术文档

复制代码
搜索:「之前看过的讲 C++ 移动语义的文章」
结果:匹配到《C++11 右值引用与移动语义详解.pdf》

场景二:产品经理找方案文档

复制代码
搜索:「上个月写的用户增长方案」
结果:匹配到《2026Q2用户增长策略_v3.docx》

场景三:自由职业者找客户资料

复制代码
搜索:「做电商的那个客户的合同」
结果:匹配到《XX电商-技术服务合同-2026.pdf》

隐私和安全

所有数据都在本地处理。你的文件不会被上传到任何服务器,索引数据也保存在本地。

在这个 AI 工具动辄要上传文件到云端的时代,本地优先不是卖点,而是底线。


开发背后的故事

我是一个写了十多年 C++/Qt 的程序员。在 AI 浪潮下,身边很多人转行去做 Python、做 Web,但我始终觉得 C++ 在桌面端还有很大的空间。

搜忆就是我的一次尝试------用原生开发的性能优势,去做一个 AI 时代的桌面工具

这个项目从零开始,到现在 MVP 完成,经历了:

  • RAG 链路的全流程打通
  • 中文语义搜索的反复调优
  • 索引性能的极致压榨
  • 本地模型部署的各种踩坑

后续我会持续分享这个项目的开发过程、技术选型思考、以及一个人做产品的踩坑经验。


体验方式

搜忆目前处于早期阶段,欢迎感兴趣的朋友体验反馈:

  • 📦 下载地址:GitHub Releases(即将开放)
  • 💬 交流反馈:评论区留言或私信
  • 📝 开发日志:关注我的 CSDN 博客,持续更新

最后

如果你也有"文件找不到"的困扰,如果你也相信原生开发的价值,欢迎试试搜忆。

让文件自己记住你在哪。


作者是一名大龄 C++/Qt 程序员,正在从打工人转型独立开发者。这个博客会持续记录搜忆的开发过程、一人公司的探索心得,以及中年程序员的技术思考。欢迎关注。