# 如何在普通 Mac 上免费搜照片和文件？用 DigUp，说一句话就能找

- URL: https://davidyin.dev/writing/282-20261016-digup-embeddinggemma2/
- 作者: David Yin
- 发布: 2026-10-16
- 标签: AI工具、DigUp、本地搜索、Mac、EmbeddingGemma
- 摘要: DigUp 免费开源，在 Mac 本机跑，文件不上传。拖进应用程序或一行 brew 命令就装好；首次要下模型、建索引，之后用中文一句话搜照片、合同、截图，还能跳到视频那一秒。

DigUp 是个装进你自己电脑的文件搜索工具：拖进应用程序，或者一行 brew 命令，就装好了。免费、开源，文件只在本机处理、不上传，没账号，没遥测。

我把它装在一台平民级的 MacBook Air（M3）上，拿一批照片、视频、合同和截图实测了一遍。它最好用的场景，是用中文一句话描述照片里拍了什么、合同里写了哪条、截图上有什么——找出来不算，还能直接跳到那一页、那一刻。第一次打开得先下 865MB 的模型，建索引也要等一阵，这两件事得先有心理准备，后面一节节说。

## 五行说清能不能用

- 能干啥：在你选定的文件夹里，按内容搜图片、截图、PDF、文档、录音和视频；打开结果时，PDF 到那一页，录音和视频到那一刻。
- 要啥机器：苹果芯片的 Mac，macOS 14 以上。Windows 和 Linux 版还在测试阶段。
- 怎么装：去 Releases 下 DMG 拖进应用程序，或者 `brew install --cask arahim3/tap/digup`。
- 要等多久：模型 865MB 只下一次，我这台下了 38 分钟；建索引大约一秒一个文件，追加 317 个文件花了 5 分半。
- 短板：中文录音把握低，单个中文词容易落空，同样的意思换成英文问更稳。另外第一次建索引时它在逐个读文件，机器会有点忙，放着让它跑就行。

## DigUp 是什么东西

DigUp 是 ARahim3 的开源项目，MIT 许可。它自己不产模型，底下跑的是谷歌 DeepMind 2026 年 10 月发布的多模态嵌入模型 EmbeddingGemma 2：Apache 2.0 许可，7.4 亿参数，认识一百多种语言。这个模型把文字、图片、声音、视频都塞进同一个空间：一张海边狗的照片，离「海边的狗」这四个字近，离「番茄炒蛋」远。

DigUp 做的事，就是把这个能力接到你的硬盘上：你指定要搜哪些文件夹，它挨个读一遍建索引；之后你描述想找什么，它去挑意思最接近的那几段。整个过程不看文件名，文件叫 IMG_20210112_1.png 也不影响。

跟苹果自带的搜索比，苹果也会分析画面，只是在后台慢慢跑。这个差别我后面拿同一批文件实测。

按谷歌那篇博客的原话，同一个尺寸档里（10 亿参数以下的多模态嵌入模型），它的几项基准分数领先，有些任务上能追平、超过更大的模型。我理解成「同尺寸里比较能打」，不指望它天下第一。

## 官方演示里的三段结果

官方那个演示动图我反复看过几遍，最抓人的是视频定位：搜 zebra in a video，一段非洲草原的片子被翻出来，直接停在斑马出现的那一秒，第 42 秒。注意这段视频的文件名叫「Masai Mara - day 2」，名字里根本没有斑马两个字，它是看了画面才找到的。

租约那段也一样。搜 the clause about pets in the lease，一份租房合同的 PDF 被打开，翻到写宠物条款的那一页，搜索词在页面上标出来。播客那段我印象更深：搜 where they talk about sleep，一期音频跳到那一分钟，从那句「睡觉」开始放。

租约那条动图在下面；注意它是看内容翻页的，不是按文件名。

演示里的文件全是英文，换成中文行不行，得自己试。我后面专门测了。

## 它靠什么找到内容

原理不复杂。建索引时，模型把每张图、每一页 PDF、每段文字、每 30 秒声音、视频每隔几秒抽的一帧，都变成一串数字，塞进一个 SQLite 文件。搜的时候，你打的那句话也变成一串数字，跟库里所有向量比远近，谁的近谁排前面。这些向量都是 768 维的，一张视频截图和一页 PDF 能在同一个尺度上比。

除了按意思比，它还留了一条原词精确匹配的通道：发票号、错误码、人名这类东西，嵌入表达不精确，就靠字面上的匹配补上，两条路的分数合在一起排序。截图上的订单号能整串搜到，就是这条通道在起作用。

音频是按 30 秒一段、互相重叠着切；视频每隔几秒取一帧，另外每个镜头取一帧，音轨按音频那套处理。Mac 上模型跑在 GPU（Metal）上，用的是 llama.cpp 的 8 位量化版本；模型待在独立进程里，索引完就退出，搜索时才加载文本那一小部分，大概 250MB。索引里记着每个向量是哪个模型版本做的，更新之后向量没变就保留原索引。做完索引，新放进去的文件几秒钟就能搜到。

## 装之前先对一下机器

README 写得很直白：Mac 版要苹果芯片，系统 macOS 14 以上。我用的是一台 MacBook Air M3、16GB 内存，属于很普通的配置——按 The Verge 的报道，16GB 是苹果这代 MacBook Air 的最低配置档位，起售价 999 美元，是苹果笔记本里最便宜的一档。这东西不是给顶配机器准备的。

Windows 和 Linux 有测试版：Windows 上是 x64 安装包，装给自己、不需要管理员权限；Linux 上 Ubuntu、Debian、Mint 这些发行版有 .deb 包，别的地方用 AppImage。这两个平台的包还没签名，Windows 可能弹提示说认不出这个应用，想折腾可以试，主力机先别动。

## 第一步：把它装进来

Mac 上有两条路，选一条就行。

一条是去 GitHub 的 Releases 页面下 DMG，打开之后把 DigUp 拖进「应用程序」文件夹，跟装普通 Mac 软件一样。

另一条是 Homebrew，一行命令：

```
brew install --cask arahim3/tap/digup
```

装完在启动台或应用程序文件夹里能看到它。第一次打开会有系统提示，允许一下就行。

## 第二步：第一次打开

打开之后它不急着干活，先让你选文件夹。可以选整个文件夹，也可以只选里面某几个子文件夹。它还算贴心：每个文件夹会显示一个首次预估时间，这数字是按你这台机器实测出来的，不是拍脑袋。选大文件夹之前先看一眼，心里有底。

选好文件夹，剩下两件事要等。

一是下模型。865MB，一次性，只下这一次。为什么这么大？README 解释过：文本部分 310MB，图像和音频编码器 555MB，加起来就是它。我这台机器连的网不算快，下了大约 38 分钟（2300 秒）。你那边多久取决于网速，没有统一答案。

二是建索引。它要把选中的文件挨个读一遍，这是最费时间的环节。这一步它干的事挺多：照片和截图看画面，截图里的字在 Mac 上还会额外用系统的文字识别读出来；PDF 一页一页过，扫描件也算，特别长的先读前 30 页，剩下的等其它文件都建完再补；录音按 30 秒一段切开听；视频每隔几秒取一帧。我的测试文件夹第一批 8 个文件花了 40 秒；后来我又塞进去 317 个干扰文件，追加索引花了 331.5 秒，算下来差不多一秒一个。README 给的参考是：几百个文件几分钟，一个塞满东西的「下载」文件夹可能得一个小时。

索引建好之后你再放新文件进去就不一样了，落地几秒钟就能搜到，不用再等一遍。

下面是我这台机器的设置页：能看索引跑到哪了（我这儿是 326 个文件全索引完）、能追加要跳过的文件夹和扩展名、也能限制只在接电源或者指定时段才跑索引。

## 第三步：呼出搜索框

DigUp 常驻菜单栏，平时不用管它。在任何应用里按 ⇧⌘Space，搜索面板就出来了（Windows 和 Linux 上是 Ctrl+Shift+Space）。这个快捷键可以在设置里改。

结果出来之后：

- ↓ ↑ 上下选
- 回车打开：PDF 翻到那一页，录音和视频跳到那一刻，代码（如果开了代码搜索）在编辑器里打开到那一行
- 空格：大预览，也是停在那页或者那一刻
- ⌘↩：在访达里显示这个文件
- ⌘O：换一个大窗口看同样的搜索结果，带图片网格和筛选

Mac 上视频会交给 QuickTime Player 或 IINA 播放，第一次要允许它控制播放器；PDF 默认用「预览」打开时会带着你的搜索词，我这台 Mac 把默认 PDF 应用设成了 WPS，所以回车是直接打开文件，没有预览里那一套高亮。

我在自己机器上实际打了一次「海边的狗」，录屏在下面：结果第一条就是那段视频，标着「Matches the frame at 0:06」，回车之后 QuickTime 先闪了一下开头，然后跳到第 6 秒，正好是金毛跑进画面那一镜。

## 实测：照片和视频

接下来是我自己的测试。先说清这批文件：三张照片是我用 AI 生成的样张，一段视频，两段中文录音是用 macOS 自带的朗读功能念出来的，一份租房合同扫描件，一张付款失败截图。文件名全是相机那种乱码，「IMG_20210112_1」这种，录音就叫「新录音1」「新录音2」，光看名字完全猜不出内容。为了让搜索有点难度，我又塞了 317 个不相干的文件当干扰。

打「海边的狗」：第一条是那段视频，DigUp 跳到第 6 秒，正好是金毛在海边跑的那一镜；第二条就是那张照片；317 个干扰文件一个都没挤进前两名。

打「过生日吹蜡烛」：视频排第一，停在开头那一镜，蛋糕照片排第二。打「白板上画的流程图」：视频跳到第 4 秒，照片第二。三张照片用中文都找到了。

## 实测：合同扫描件

合同那份文件的名字就是「扫描件_0315」，一点提示都没有。我打「租房合同里关于养宠物的条款」，排第一的是它，而且它把原文摘了出来：

「第三条 宠物条款：未经出租方书面同意，承租方不得在房屋内饲养猫、狗等宠物。如需饲养，应额外缴纳押金两千元。」

录屏里你能看到：列表里只有这一个结果，标着「Matches page 1」，回车之后文件直接打开到写宠物条款那一页。我这台把默认 PDF 应用设成了 WPS，所以打开的是 WPS；系统默认是「预览」的话，它会带着你搜的词打开。

同一次搜索在命令行里的原始输出是这样，结果里带了页码和摘出来的原文：

这说明它是读了扫描件里的字才找到的，那份 PDF 在索引里算第一页。同一份合同，我用英文打 lease clause about pets，它排到第三才出现，前两条是杂物，分数只有 2.7。

## 苹果聚焦的同场对照

同一批文件，我也拿苹果自带的搜索试了。在我这台机器、这批文件上：测试文件放好的当晚，打「狗」，只命中了那份合同——因为合同文字里有「狗」这个字，金毛照片和那段视频都没出来。等过了一夜再搜，视频能搜到了；照片到 10 月 16 日中午还是没有。打「支付失败」，那张截图也是一直没有结果。

这里得说句公道话：这不是说苹果搜不到画面内容——它也在分析画面，只是在后台慢慢跑，我这台上过了一夜才部分到位；DigUp 是索引建完就能搜。单次对照只能说明这台机器这个时间点的情况，不代表所有 Mac 都这样。

## 实测：截图和订单号

打「付款失败的截图」，那张截图排第一，分数 4.9。截图上有一串订单号 20230415887261，我把整串数字粘进搜索框，它还是能找到那张截图，而且标着「words #1」，走的是原词精确匹配那条路。截图里的文字在 Mac 上会被读出来，这是 DigUp 在 Mac 上独有的一项能力，Windows 和 Linux 上还没有。

顺手试了个跨语言的：用英文打 payment failed screenshot，同一张截图还是排第一，分数 6.6。用「银行卡余额不足」也能命中，分数 3.5，同样是原词匹配排第一。

## 怎么描述才搜得准

用下来有几条经验，都是实测里撞出来的：

- 打一整句话，别只丢一个词。搜「租房合同里关于养宠物的条款」能命中，只打「押金」就落空。
- 描述画面里有什么、在干嘛。「海边的狗」「过生日吹蜡烛」「白板上画的流程图」，都是这个路子。
- 找文字内容，把那行字的意思说出来。「付款失败的截图」比「截图」有用得多。
- 搜录音要带上「录音」「开会」这类词，内容说具体一点。「团建去杭州」能命中，「开会时说几点前睡觉」就找不到。
- 中文单个词匹配不太行——中文词和词之间不空格，它切不开，精确匹配这条通道等于断了一半。
- 英文整体比中文稳，同样的意思用英文问，把握分数明显高一截。

## 哪些说法搜不到

失败的样子也得说清楚，不然你装完会以为坏了。

只打「押金」，前排全是杂物图片，合同没出来。合同里明明写着押金两千元，问题出在这条查询走的是精确词匹配，中文分不了词，等于半个通道断了。

打「开会时说几点前睡觉」，那段录音里说过「建议晚上十一点前睡觉」，但它没找到，前排三条都是不相干的图片。换成「团建去杭州」就能命中那段录音，分数 2.3；「番茄炒蛋」也能命中另一段录音，分数 2.0，两个都偏低，勉强进前排。

打「视频里的狗」，前几名全是杂物，画面里有狗的那段视频没上来。它是按内容片段算的，问法里带「视频」两个字反而帮不上忙。

英文搜中文合同也不行，前面说过，合同排到第三才出现。英文搜「海边的狗」倒是很稳：a dog on the beach 排第一，分数 7.4；中文的「海边的狗」也排第一，分数 4.5。同样是第一名，英文的把握高得多。谷歌自己也说过，这个模型不是每种语言都一样强。

## 验证一下装好了

最简单的验证办法：找一张你确定存在的照片，用中文描述一下它在哪、拍了什么，看它出不出来。出来了，说明模型和索引都没问题。

索引还在跑的时候，看菜单栏的图标，点开能看到进度，也能暂停。暂停之后再继续，不会重头来。这一步对第一次用的人挺重要，不然会以为卡死。README 有句话可以宽心：只有第一遍重，之后它只读新文件；搜索用的那部分模型只在搜索时才加载，平时不占着。

## 隐私与安全

README 里这段写得很明确，我按它的说法讲：

你索引的文件不会离开这台电脑。DigUp 只在两个时候联网：第一次下载模型，以及每天一次检查有没有新版本。检查更新不会送出去任何关于你文件的信息，这个检查也能在设置里关掉。没有账号，没有遥测。

我这台的设置里也确实这么写。Storage 那一页标着模型是 EmbeddingGemma 2、谷歌、Apache 2.0、865MB、已下载；下面一句原文是「DigUp 只读你选的文件夹，把学到的东西存在本机的索引里。它只在下载模型（一次）和查更新时联网，查更新不会送出任何你文件的信息」。

读的范围也有边界：它不读密钥、证书、密码文件，不碰 .ssh 这类隐藏文件夹，不碰应用程序和缓存，看着像数据集的文件夹会跳过。只存在于云盘、本机没下载的文件（Mac 上是 iCloud）它不去下。代码默认不读，除非你在设置里专门开了代码搜索。它只读文件，不改、不移、不上传。

## 常见问题

**快捷键跟我现在的撞了怎么办？** ⇧⌘Space 可以在设置里改。README 只说可以改，没别的条件。

**想搜代码。** 默认是关的，去设置 → Code 打开，选你要搜的项目文件夹。搜的时候以 `code:` 开头，比如 `code: retry a failed call with backoff`，会找到那个函数；打 `code: refreshAccessToken` 会跳到定义它的那一行。代码有自己独立的索引，不会混进普通搜索里。README 给的参考是：小项目读一遍大约 20 秒，整个 llama.cpp 大约 20 分钟、索引占 130MB。

**会不会拖慢电脑？** 只有第一遍索引重。之后它只读新文件，模型在独立进程里跑完就退出，搜索那一小块只在搜索时加载。

**建索引太慢，能停吗？** 点菜单栏图标，里面有暂停。它会记着进度，接上继续。

**会读我的密码、改我的文件吗？** 不读密钥、证书、密码文件，不碰 .ssh；对文件只读，不改、不移、不上传。

**怎么只索引一部分文件夹？** 第一次选的时候就能只挑子文件夹；之后在设置里还能继续跳过某些文件夹和文件类型。

**怎么卸载？** 两条路。手动删：退出 DigUp，把 DigUp.app 拖进废纸篓，再删掉 `~/Library/Application Support/DigUp`，模型和索引都在那里。用 Homebrew 装的更省事：`brew uninstall --cask --zap digup`，一把清干净。

## 适合谁、不适合谁

**值得装**：你是 Mac 用户，硬盘里堆着照片、截图、合同、PDF，经常想不起文件叫什么；你愿意用一句大白话描述，而不是敲两个关键词。

**先别抱期望**：你主要想搜中文录音，这块把握偏低；你的习惯是只打一两个词，中文单词容易落空；你用的是英特尔芯片的 Mac 或者 Windows 主力机，眼下只有测试版。

## 最后说一句

回到开头那个场景：一句中文，能不能把电脑里的旧照片、旧合同翻出来？在我这套测试文件上，照片、合同、截图这几类基本能搜到；视频要看你怎么问，「海边的狗」行、「视频里的狗」就不行；录音和只打一个词的搜法还不太靠得住。免费、开源、文件不出本机，这三点让试错成本很低，代价是首次下载和建索引要等一等。Mac 用户可以装一个试试，反正不花钱。

先收藏，留言说说你最常找不到什么文件？

**想聊更多**：我建了一个「AI 自媒体创业讨论群」，里面交流的都是这类 AI 工具的实际使用体验——好不好用、坑在哪、怎么用在自媒体流程里，都是实测说话。扫下面这个二维码就能进。

（二维码到 10 月 23 日有效，过期了就私信我。）

## 参考资料

- [谷歌官方博客《EmbeddingGemma 2》发布文章，2026 年 10 月 6 日](https://blog.google/innovation-and-ai/technology/developers-tools/embeddinggemma-2/)
- [DigUp GitHub 仓库 README](https://github.com/ARahim3/DigUp)
- [The Verge 关于 M2 与 M3 MacBook Air 起步配置和价格的报道](https://www.theverge.com/2024/10/30/24282981/apple-macbook-air-m2-m3-16gb-ram-minimum-price-unchanged)
- 本文作者在 MacBook Air M3 上的本地实测记录，DigUp 0.6.1，测试集为 8 个目标文件加 317 个干扰文件
