2010-04-02 13 views
6

Rozwijam aplikację OS X do organizowania "rzeczy" (tak jak iTunes do muzyki i iPhoto do zdjęć). Zamiast mieć własną bazę danych i indeks, rozważam użycie Spotlight, aby w istocie służyć temu celowi.Używanie Spotlight jako "bazy danych" aplikacji

Czy ktoś próbował tego? Czy to jest mądre?

Główną korzyścią, jak widzę, byłaby prostota i unikanie nadmiarowości. Wydaje się nieco nieekonomicznym zaimplementować własną maszynę do indeksowania, gdy OS X ma wbudowany jeden.

Mam jednak niewielkie doświadczenie w pracy z Spotlight. Z perspektywy użytkownika wiem, że był powolny i nieprecyzyjny w starszych wersjach OS X. Mam też przeczucie, że skoro ma na celu przeszukanie całego systemu plików, używanie go do celów "lokalnych" staje się hackowskie.

Oczywiście, mój indeks aplikacji musi być stale aktualny. Czy można do tego użyć mdimport?

Odpowiedz

6

Kilka aplikacji wysyłanych w ten sposób. Sądzę, że istnieje co najmniej jedna firma, która umieszcza wszystkie dane swoich klientów w plikach tekstowych, aby używać Spotlight do wyszukiwania informacji. Ciągle zapisuję notatki ze słowami kluczowymi z pełnym przekonaniem, że Spotlight będzie mógł je później znaleźć!

Ogólnie rzecz biorąc nie trzeba prod reflektować, aby indeks był aktualny. Bardzo dobrze sprawdza się w szybkim oglądaniu zmian plików i indeksowaniu.

Kluczem naprawdę jest ustalenie formatu pliku. Jeśli wybierzesz coś, co Spotlight może indeksować - powiedzmy pliki tekstowe - nie musisz pisać importera. Jeśli nie, to ty. Spójrz również na Core Data, ponieważ ma również znakomitą wartość Spotlight support.

Jedno zastrzeżenie; są tacy użytkownicy, którzy ręcznie wyłączają indeksowanie punktowe dla określonego woluminu. Rzadkie, ale możliwe.

+0

Aha! A więc TO TAK, jak dostosowujesz to, co jest wyświetlane w wynikach wyszukiwania (kMDItemDisplayName). Dzięki za odpowiedź, jest to dość pouczające. – vicvicvic

+0

FWIW, pisanie importera reflektorów nie jest naprawdę trudnym zadaniem. W przypadku większości aplikacji można to zrobić w ciągu kilku godzin .. * (właśnie skończyłem pisać pierwszego importera dla starszej aplikacji Carbon w ciągu około 3 godzin) * – Jay

Powiązane problemy