Использование Spotlight в качестве "базы данных" приложения

Я разрабатываю приложение для OS X для организации "вещей" (iTunes - для музыки, а iPhoto - для фотографий). Вместо того, чтобы иметь свою собственную базу данных и индекс, я рассматриваю возможность использования Spotlight для этой цели.

Кто-нибудь пробовал это? Это мудро?

На мой взгляд, основным преимуществом будет простота и избежание избыточности. Кажется, немного расточительно реализовать мой собственный механизм индексирования, когда OS X поставляется с одним встроенным.

Однако у меня мало опыта работы с Spotlight. С точки зрения пользователя, я знаю, что он был медленным и неточным в более старых версиях OS X. У меня также есть внутреннее чувство, что, поскольку он нацелен на поиск по всей файловой системе, использование ее для "локальных" целей становится хакерским.

Очевидно, что индекс моих приложений должен постоянно обновляться. Можно mdimport быть использованы для этого?

1 ответ

Решение

Несколько приложений поставляются таким образом. Я считаю, что есть по крайней мере одна компания, которая помещает все свои данные о клиентах в текстовые файлы, чтобы использовать Spotlight для поиска информации. Я сохраняю заметки с ключевыми словами все время с полной уверенностью, что Spotlight сможет найти его позже!

В общем, вам не нужно подталкивать Spotlight, чтобы поддерживать индекс в актуальном состоянии. Это очень хорошо для наблюдения за изменениями файлов и быстрой индексации.

Ключ, на самом деле, выяснить формат вашего файла. Если вы используете что-то, что Spotlight может индексировать - скажем, текстовые файлы - тогда вам не нужно писать импортер. Если нет, вы делаете. Кроме того, взгляните на Core Data, поскольку он также имеет отличную поддержку Spotlight.

Одно предостережение; есть такие пользователи, которые вручную отключают индексирование прожектора на определенном томе. Редко, но возможно.

Другие вопросы по тегам