2011-11-07 16 views
5

我不想以任何方式改變索引,只需閱讀它,監視它的變化並複製它。這將是一個原生的應用程序/服務,將在後臺運行。我「米假設我會瞄準10.6以上,但不是在石頭寫的。原生OS X應用程序是否可以讀取和複製Spotlight搜索索引?

哪裏是實際的指數?我可以在任何語義上有用的方式閱讀?

周圍的Googling,我沒有發現了對實際Spotlight索引位置的任何引用,或者讀取整個事物的API。我確實發現了Search Kit Reference,這似乎解釋了底層技術的工作原理並可能有所幫助,但並未解釋如何檢索整個索引或監測索引隨着時間的推移。

我還注意到一個名爲Houdah的應用程序,它提供了一個改進前端到Spotlight,這可能是有趣的,但我不知道他們是如何實現它們的效果的 - 如果它實際上只是一個前端,調用與Spotlight相同的Search Kit API對同一索引,這不像我之後...

編輯:不能相信我沒有閱讀wikipedia article on Spotlight - 很好的參考,但我認爲我的問題代表。

(我是一個前端Web傢伙,道歉noobishness。)

UPDATE:一個OS X開發的朋友認爲這將被存儲在一個隱藏的文件SQLite數據庫,但無法找到他花在看幾分鐘內的實際文件。他確實發現了一個隱藏的.spotlight目錄,但這是空的。

回答

2

在Mac OS X 10.7上 - 以前的版本顯着不同 - Spotlight索引存儲在/.Spotlight-V100/Store-V2中。存儲格式是無證的,但肯定是而不是 SQLite。

我懷疑是否有任何有用的方式從Spotlight索引中提取數據而沒有不切實際的逆向工程量。即使你這樣做了,它也可能會與Mac OS X的新版本相沖突。

+0

維基百科在達爾文中表示,因此不需要逆向工程,只需找到相關的源代碼即可郵件列表的一些進一步的幫助也將是一個好主意) – JustSid

+0

我懷疑維基百科在這一點上是錯誤的 - 沒有任何關於http://opensource.apple.com/,它看起來像它是Spotlight的一部分,並沒有任何來源引用。 – duskwuff

+0

感謝您的非常有用的答案。你是否認爲,不是直接閱讀索引,而是可能有一種方法來利用構建和更新它的過程? (無論調用什麼過程調用'SKIndexAddDocumentWithText''都可以搭載調用'MyIndexAddDocumentWithText'?再一次,請原諒我的OS X無知。)或任何其他創建文件系統的輔助索引的想法(缺少從後到前構建整個自定義索引器) ? – peteorpeter

相關問題