Using Spotlight as the “database” of an application

爱⌒轻易说出口 提交于 2019-12-06 01:59:48

问题


I'm developing an OS X application to organize "things" (as iTunes is to music and iPhoto to photos). Instead of having my own database and index, I'm considering using Spotlight to essentially serve this purpose.

Has anyone tried this? Is it wise?

The main benefit, as I see it, would be simplicity and avoiding redundancy. It seems a bit wasteful to implement my own index machinery when OS X comes with one built in.

I have little experience working with Spotlight, however. From a user's perspective, I do know that it has been slow and imprecise in older versions of OS X. I also have a gut-feeling that since it's aimed at searching the whole filesystem, using it for "local" purposes becomes hackish.

Obviously, my applications's index needs to constantly be up-to-date. Can mdimport be used for this?


回答1:


Several apps ship this way. I believe there is at least one company that puts all their customer data into text files to use Spotlight to find information. I save notes with keywords all the time with full confidence that Spotlight will be able to find it later!

In general, you don't need to prod Spotlight to keep the index up to date. It is very good about watching file changes and indexing rapidly.

The key, really, is figuring out your file format. If you go with something that Spotlight can index -- say, text files -- then you don't have to write an importer. If not, you do. Also, have a look at Core Data as it has excellent Spotlight support, too.

One caveat; there are those users that manually turn off spotlight indexing on a particular volume. Rare, but possible.



来源:https://stackoverflow.com/questions/2564549/using-spotlight-as-the-database-of-an-application

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!