Macos 本机OS X应用程序是否可以读取和复制Spotlight搜索索引?

Macos 本机OS X应用程序是否可以读取和复制Spotlight搜索索引?,macos,search,spotlight,Macos,Search,Spotlight,我不想以任何方式更改索引,只需读取它,监视它的更改,然后复制它。它将与本机应用程序/服务一起运行,并在后台运行。我假设我的目标是10.6+,但这不是一成不变的 实际索引在哪里?我可以用任何语义上有用的方式读取它吗 通过谷歌搜索,我没有找到任何关于Spotlight实际索引位置的引用,也没有找到一个API来阅读整个内容。我确实找到了,它似乎解释了底层技术的工作原理,可能会有所帮助,但没有解释如何检索整个索引,或者随着时间的推移监控索引 我还注意到一个名为“预示”的应用程序提供了一个改进的前端到聚光

我不想以任何方式更改索引,只需读取它,监视它的更改,然后复制它。它将与本机应用程序/服务一起运行,并在后台运行。我假设我的目标是10.6+,但这不是一成不变的

实际索引在哪里?我可以用任何语义上有用的方式读取它吗

通过谷歌搜索,我没有找到任何关于Spotlight实际索引位置的引用,也没有找到一个API来阅读整个内容。我确实找到了,它似乎解释了底层技术的工作原理,可能会有所帮助,但没有解释如何检索整个索引,或者随着时间的推移监控索引

我还注意到一个名为“预示”的应用程序提供了一个改进的前端到聚光灯,这可能很有意思,尽管我不知道它们是如何实现效果的-如果它只是一个前端调用了与聚光灯相同的搜索工具包API,针对相同的索引,这并不是我想要的

编辑:不敢相信我没有读过好的参考书,但我认为我的问题是正确的

(我是一名前端网络人员,为我的无趣道歉。)

更新:一位OS X开发人员的朋友认为它会存储在SQLite数据库中的一个隐藏文件中,但在他花了几分钟的时间里找不到实际的文件。他确实找到了一个隐藏的
.spotlight
目录,但这个目录是空的。

在Mac OS X 10.7上——以前的版本有很大的不同——spotlight索引存储在
/.Spotlight-V100/Store-V2
中。存储格式未记录,但肯定不是SQLite


我怀疑是否有任何有用的方法可以从Spotlight index中提取数据而不进行不切实际的反向工程。即使你这样做了,它也可能会与Mac OS X的新版本决裂。

维基百科说它在达尔文,所以不需要反向工程,你只需要找到相关的源代码(也许在邮件列表上寻求进一步的帮助也是个好主意)我怀疑Wikipedia在这一点上是错的——上面没有任何东西看起来像是Spotlight的一部分,也没有引用任何来源。谢谢你提供了非常有用的答案。你认为有没有办法直接阅读索引,而不是利用构建和更新索引的过程?(无论进程调用什么
SKIndexAddDocumentWithText
,都可以通过调用
MyIndexAddDocumentWithText
?同样,请原谅我对OS X的无知。)或任何其他创建文件系统辅助索引的想法(除了从后到前构建整个自定义索引器)?通过使用
FSEvents
API,可以使用Spotlight使用的相同通知系统。不过,我不认为有任何方法可以直接连接到索引器(
mds
),而无需大量黑客攻击。感谢您提供的指导。回答和建议已被正式接受。