Как ваши отдельные станции хранятся / представляются внутри? Центр внимания - один-один-один-результат поиска. Приложения с одной библиотечной БД или аналогичной ей традиционно экспортируют эти элементы в подпапку папки ~ / Library / Caches. Вы бы написали один файл-заглушку для каждого элемента, который вы хотите найти. Этот «заглушенный» файл будет иметь свое собственное отдельное расширение / тип документа (он по-прежнему доступен для вашего приложения), и именно на этом вы будете основывать свой импортер Spotlight.
Прецедент: AddressBook.app.
Например, в одном из моих приложений есть центральная (не основанная на документе) база данных библиотеки стенограмм. Я хотел, чтобы пользователи могли искать отдельные транскрипты и отображать их как отдельные результаты в Spotlight. Единственным выходом из этого было то, что мое приложение создавало и поддерживало одноразовую коллекцию файлов ".transcriptstub", в которых содержалось текстовое представление с возможностью поиска.
Я говорю «одноразовые», потому что вещи в ../Cache предназначены для легкого воссоздания вашим приложением, если они отсутствуют. Я обновляю их при необходимости при запуске приложения (как отдельную операцию NSO, чтобы предотвратить длительные запуски), и каждый отдельный, как он изменяется во время выполнения.
Когда приложению открывают одну из этих заглушек, оно использует некоторый идентификатор в файле (возможно, UUID?) И ищет его в базе данных. Если есть совпадение, он выбирает этот элемент в пользовательском интерфейсе.