我不想以任何方式更改索引,只需读取它,监视它的更改并复制它即可。它将与 native 应用程序/服务一起在后台运行。我假设我的目标是10.6以上,但这并不是一成不变的。
实际索引在哪里?我可以用任何语义上有用的方式阅读它吗?
到处搜寻,我还没有找到对实际Spotlight索引位置的任何引用,也没有找到可读取整个内容的API。我确实找到了Search Kit Reference,它似乎可以解释底层技术的工作原理,并且可能会有所帮助,但是并没有说明人们如何检索整个索引或随着时间的推移监视索引。
我还注意到了一个名为Houdah的应用程序,该应用程序旨在为Spotlight提供改进的前端,尽管我不知道他们是如何实现其效果的,但可能不感兴趣-如果它只是一个前端,它调用与Spotlight相同的Search Kit API,相同的索引,那不是我想要的...
编辑:不能相信我没有读过wikipedia article on Spotlight-很好的引用,但我认为我的问题仍然存在。
(我是一个前端网络专家,为犯下不道德的行为而道歉。)
更新:OS X开发人员 friend 认为该文件将存储在SQLite数据库中的隐藏文件中,但是在他花了几分钟的时间后才找不到实际文件。他确实找到了一个隐藏的.spotlight
目录,但这是空的。
最佳答案
在Mac OS X 10.7上,以前的版本有很大不同,Spotlight索引存储在/.Spotlight-V100/Store-V2
中。存储格式是未记录的,但绝对是而不是 SQLite。
我怀疑是否有任何有用的方法可以从Spotlight索引中提取数据而不会进行不切实际的逆向工程。即使您这样做,它也可能会因新发行的Mac OS X而中断。
关于macos - native OS X应用程序是否可以读取和复制Spotlight搜索索引?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8043215/