有什么办法可以让 spotlight 针对 NAS 的 volume 进行索引吗?

2022-05-10 23:37:55 +08:00
 Joysisyphus

请问各位有什么办法可以让 spotlight 针对 NAS 的 volume 进行索引吗?简单搜索了下,主要看到了两种办法,但是我这边尝试了下都是无效的

  1. Apple 官方提供的办法,先把对应文件夹加入 spotlight 的黑名单,然后再从黑名单中移除,我试过了,针对 NAS 的 volume 无效。Rebuild the Spotlight index on your Mac - Apple Support
  2. 第二种是通过终端命令 sudo mdutil /Volumes/volumename -i on ,我这边得到的结果是 Error: unable to perform operation. (-403) Server search enabled. 虽然显示的是 Server search enabled ,但是依然是没有索引的

注:

  1. 我的 NAS 是 QNAP 的,自带的 Qsirch 会建立索引,QNAP 论坛中有人说可以让 spotlight 利用 Qsirch 的索引来进行搜索,但是没有提供具体的方法,如果能实现 spotlight 利用 Qsirch 的索引也很不错
  2. 如何判断一个文件夹是否被 spotlight 索引了?之所以想被 spotlight 索引,是因为想通过 spotlight 或者 alfred 来直接搜索对应的文件 /文件夹,我上面说的无效是指无法通过 spotlight 或者 alfred 来直接搜索。如果通过 Finder 打开对应的 NAS 文件夹内部,用 Finder 自己的搜索功能是可以的,不知道这种算不算是 spotlight 索引成功
2735 次点击
所在节点    macOS
16 条回复
LoneFireBlossom
2022-05-11 07:55:33 +08:00
我有群晖 nas 我也有这个问题 网上搜到的方法感觉无效
icestraw
2022-05-11 08:56:06 +08:00
我研究过,Spotlight 的 Server Search 本质上是苹果自己的搜索协议,需要服务端配合,单独在客户端用 mdutil 不行。

实现 Spotlight 索引大概有几种方法:
1. NAS 也用 macOS 开 smb 共享。简单,兼容性最好,功能完全。其他方法都有一定程度的功能缺失,比如无法过滤 tags ,搜索结果不全,特殊字符无法处理等。
2. 使用新版本的 samba 配置索引。很麻烦,需要配置 extended attributes 等一系列协议,依赖一堆其他服务,根据 distro 不同可能还需要手动编译 samba 。可以以关键词 samba time machine 搜索配置方法。
3. 群晖之类的 NAS 系统会比较好的实现 2
4. Windows 使用三方软件做服务端 https://www.acronis.com/en-us/products/files-connect/。
5. 舍弃 smb ,直接用 iscsi https://www.atto.com/xtend-san/

Finder 直接搜索出来不一定是靠索引,也可能在遍历。Spotlight 对于 smb 能使用索引的方法只有 Server Search (即索引建立在服务端)
Joysisyphus
2022-05-11 09:58:04 +08:00
@icestraw 感谢回复!能详细说下第一种方法吗?什么叫做「 NAS 也用 macOS 开 smb 共享」?我之前在 QNAP 的设置界面选择了连接方式是 SMB 协议,Mac 也是通过 SMB 协议连接的 NAS ,还需要在 QNAP 的设置界面进行什么额外的设置吗?

QNAP 确实有自己的索引 Qsirch ,只是不知道如何让 spotlight 能够利用 Qsirch 已经建立好的索引

其他方法看了下确实可能不太合适,iscsi 居然快 200 刀,samba 也看到 qnap 论坛上有人提过,各种版本兼容性问题
icestraw
2022-05-11 11:23:21 +08:00
@Joysisyphus 额,很直观啊,就是不要用 QNAP 那个共享,用另一台 mac 设备发起共享啊。系统偏好设置 -> 共享 -> 文件共享。
你用 QNAP 的 smb 服务端其实也就是 samba ,我没用过 Qsirch ,但是 macOS 应该是不认的。
服务端不一定是实体机,虚拟的也可以。比如 https://github.com/sickcodes/Docker-OSX
Joysisyphus
2022-05-11 12:04:00 +08:00
@icestraw 懂了,你的意思是要么用一台 Mac 连接 QNAP 作为服务端,要么 QNAP 里面搞个 OS X 的 docker 镜像作为服务端。虚拟的好理解,不过如果用实体 Mac 作为服务端的话,实体 Mac 和 QNAP 的连接还是要通过 SMB ,为什么这样就可以对 SMB 的设备进行 spotlight index 了呢?还是说连接方式有要求?不好意思,这方面了解不多
mMartin
2022-05-11 14:56:37 +08:00
关了 nas 的索引,
然后再执行你说的命令
mMartin
2022-05-11 15:12:36 +08:00
@mMartin Mac os 怎么搜索 NAS 上的文件? - Mrtian 的回答 - 知乎
https://www.zhihu.com/question/410697806/answer/1370596126
mMartin
2022-05-11 18:53:43 +08:00
找到了一个 Alfred 的 workflow ,可以搜索群晖的文件。本地挂载以后可以直接在 Finder 打开文件。配合群晖的索引搜索文件内容也是没问题的。如图: https://imgur.com/a/lb9AVsF
仓库: https://github.com/VaalaCat/synology-alfred
需要小小的修改一下,把 action 改成 Reveal File in Finder
bluefountain
2022-05-11 21:42:09 +08:00
群晖 dsm7.1 增加了一些 samba 的参数配置开关,不知道能否实现?
icestraw
2022-05-11 21:42:19 +08:00
@Joysisyphus 实体 mac 和 qnap 无法用 smb ,mac 不允许 smb reshare 。你只能走 iscsi 或者磁盘镜像,或者直接把硬盘接到 mac 上。
Joysisyphus
2022-05-11 22:17:56 +08:00
@icestraw 感谢!看来确实没有简单的办法,我的 QNAP 是 ARM 32 位的 CPU ,应该没有办法通过 docker 安装虚拟 OS X 来分享了,实体的连接上也挺折腾
Joysisyphus
2022-05-11 22:21:11 +08:00
@mMartin 多谢!那个知乎回答中以“in“为关键词的 Alfred workflow 可以分享下吗? Synology 的 alfred workflow 我还得找个针对 qnap 的替代品
mMartin
2022-05-11 22:59:12 +08:00
@Joysisyphus 之前内网情况下,关闭 nas 的索引,开启 Mac 的索引,我搜索是没问题的 in 是 Alfred 自带的功能
Joysisyphus
2022-05-12 00:48:34 +08:00
@mMartin 请问关闭 NAS 的索引具体如何操作呢?我在 QNAP 系统上只看到了删除索引,重建索引,暂停索引,好像没有办法完全关闭索引。尝试了暂停索引,然后执行“mdutil /Volumes/file -i on“,还是一样的错误提示:Error: unable to perform operation. (-403) Server search enabled.
Joysisyphus
2022-05-12 00:58:58 +08:00
@mMartin 好吧,我看了下,群晖只要关闭 Universal Search 就行了,而 QNAP 似乎没有办法彻底关闭[How do I STOP indexing ??? - QNAP NAS Community Forum]( https://forum.qnap.com/viewtopic.php?t=155088)
mMartin
2022-05-12 09:06:48 +08:00
@Joysisyphus 抱歉 我只熟悉群晖

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/852087

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX