Spotlight הוא אינדקס החיפוש החכם של אפל עבורmacOS. הנה איך להשתמש בכלי המטא נתונים שלו כדי לקבל מידע נוסף על המסמכים שלך.
זרקור פועל ברקע על שלךמקאוֹiOSמכשיר ומוסיף וסורק בשקט את תוכן המסמכים שלך, כך שכאשר אתה מחפש משהו, הוא יכול למצוא תוצאות במהירות.
הרקע העיקרידמוןב-Spotlight נקראמואר core, והוא יכול לצרוך עד 8-10% מזמן ה-CPU כאשר הוא פועל עם מצערת מלאה.
עַלאפל סיליקוןמחשבי Mac, corespotlightd יכולים להריץ עד ארבעה שרשורים בבת אחת במהלך שיא אינדקס הרקע.
אם אתה מפתח של אפל, אתה יכול להוסיף אתזרקור ליבהמסגרת לאפליקציה שלך ובקשי ממנה להוסיף לאינדקס את תוכן האפליקציה שלך באופן פנימי, כך שהתוכן יהיה זמין אוטומטית למשתמשי האפליקציה.
ישנם נוספיםממשקי API של Spotlightבמסגרת הקרן המאפשרת לך לבצע חיפושים מקומיים על נתוני Spotlight מתוך האפליקציה שלך.
תרצה להוסיף את Core Services.framework שלךXcodeגם הפרויקט, שכן זה המקום שבו נמצאים ממשקי ה-API של File Metadata.
יש גםiCloudתכונות זרקור שלא נסקור כאן.
הוסף את CoreSpotlight.framework ב-Xcode.
הגדרה אילו נפחים יוכנסו לאינדקס
ב-macOS, אתה יכול לציין אילו אמצעים אתה רוצה ש-Spotlight יוסיף לאינדקס ואילו לא. כברירת מחדל אם לאלא לכלולכרכים מ-Spotlight, הם יתווספו לאינדקס.
אם תחריג כרכים מאינדקס Spotlight, התוכן שלהם לא יוצג בחיפושי Spotlight.
אם יש לך יותר מאמצעי אחסון אחד בכונן של ה-Mac שלך, או אם יש לך כוננים חיצוניים מחוברים, אתה יכול להפעיל או להשבית את Spotlight (וסירי) על כל אחד.
כדי לעשות זאת, פתח תחילה את הגדרות מערכת ב-macOS על ידי בחירההגדרות מערכתמהתפריט תפוחבשורת התפריטים של Finder.
בצד שמאל בהגדרות מערכת, גלול מטה ולחץSiri & Spotlight. בחלונית Siri & Spotlight, אתה יכול להפעיל ולכבות את Siri, להגדיר קיצור מקלדת, להגדיר את השפה וכיצד Siri מטפלת בהיסטוריה.
מתחת לזה קטע זרקור. כאן תוכל להגדיר אילו סוגי מסמכים תרצה ש-Spotlight יוסיף לאינדקס.
אם תכבה סוג מסוים של מסמך או נתונים בסעיף זה, Spotlight יתעלם מכל המסמכים או הנתונים מהסוגים הללו במהלך ההוספה לאינדקס.
אם תגלול עד הסוף לתחתית החלונית, תראה כפתור מסומןפרטיות זרקור. לחץ עליו כדי לפתוח את גיליון הפרטיות.
חלונית הגדרות Siri & Spotlight.
גיליון הפרטיות מכיל רשימה של כל אמצעי האחסון ש-Spotlight נמצא כרגעלְמַעֵטמאינדקס - שברוב המקרים כברירת מחדל הוא או ללא אמצעי אחסון או רק דיסק ההפעלה.
כדי להוסיף או להסיר אמצעי אחסון לגיליון הפרטיות, אתה יכול לגרור אותם אליו או ממנו, או שאתה יכול ללחוץ על+אוֹ-לחצנים מתחת לרשימה.
גיליון הפרטיות של Spotlight.
לאחר הוספת אמצעי אחסון לרשימה, Spotlightמפסיקאינדקס אותו.
כאשר אתה מרוצה מרשימת אי הכללת הפרטיות, לחץנַעֲשָׂהלבטל את הגיליון. סגור את הגדרות המערכת.
כאשר corespotlightd מוסיף לאינדקס את נתוני הכרכים שלך הוא מחפש את התוכן של קבצים, אבל הוא גם מחפש ומוסיף לאינדקס אתמטא נתונים. ניתן להגדיר מטא נתונים כנתוני מידע המשויכים לקבצים, אך אינם כלולים בקבצים עצמם.
מטא נתונים כוללים (אך לא מוגבל) דברים כגון יצירת קובץ ותאריך שינוי אחרון, גודל, גרסה, סוג, שם והערות Finder המוצגות בחלונות קבל מידע.
זרקור משתמש ב-קובץ Metadata APIבמסגרת שירותי הליבה של אפל כדי למצוא ולקרוא מטא נתונים.
ישנם ארבעה סוגי נתונים עיקריים ב-File Metadata API:
- MDSchema
- MDIitem
- MDLabelDomain
- MDQuerySortOptionFlags
לא ניכנס לכל הפרטים של סוגי הנתונים, אבל הסוג העיקרי המאחסן הפניה לפריט מערכת קבצים והמטא נתונים שלו הואMDItem
סוּג.
שימוש ב-MDItem
ו-Core Services APIs, אתה יכול לאחזר, למיין ולאחסן מטא נתונים עבור פריטים במערכות קבצים מקומיות.
יש גם מסמך ישן יותר של אפל בשםמדריך תכנות לחיפוש מטא נתונים של קבצים, המתעד כיצד להשתמש בממשקי API כדי לבצע חיפושי Spotlight במטא נתונים של קבצים.
יבואני ספוטלייט
אם תפתח את התיקיה /Library/Spotlight בדיסק האתחול של ה-Mac שלך, ייתכן שתבחין בקובץ אחד או יותר עם.mdimporterהַרחָבָה. אלה הם זרקורתוספים לייבוא מטא נתונים.
לדוגמה, ל-Pages של אפל ולאפליקציות המקוריות של iBooks Author יש תוספים .mdimporter. כך גם חלק מיישומי 365 של מיקרוסופט. אפליקציות אחרות מספקות אותם גם כן.
אתה יכול לכתוב תוספים מותאמים אישית .mdimporter ב-Xcode של אפל, למקם אותם בתיקייה /Library, ו-Spotlight ישתמש בהם כדי לייבא מטא נתונים מקבצים הנתמכים על ידי האפליקציות שלך.
התוספים .mdimporter הם בעצם חבילות של קוד ומידע שאומרים ל-Spotlight אילו סוגי מטא נתונים ניתן לייבא, וכיצד לגשת לנתונים האלה. באמצעות .mdimporter מותאם אישית אתה יכול לאפשר לאפליקציה שלך לאחסן מטא נתונים נוספים ולספק אותם ל-Spotlight לצורך הוספה לאינדקס.
לאפל יש גם מסמך מפתחים (קצת ישן יותר) שכותרתומדריך תכנות יבואן Spotlightשמראה לך איך לכתוב .mdimporter.
תוסף .mdimporter Spotlight.
אפל וצדדים שלישיים מספקים גם כמה כלים של שורת פקודה (CLI) שבהם תוכלו להשתמש באפליקציית Terminal של macOS כדי לגשת למטא-נתונים של Spotlight באובייקטים של מערכת הקבצים המאוחסנים במכשירים שלכם.
Spotlight מאחסן את המטא נתונים שלו באינדקס במסד נתונים מקומי בכל אמצעי אחסון בדיסק מותקן. מסדי נתונים של מטא נתונים של Spotlight נקראיםחנויות.
כל חנות מכילה את המטא נתונים שנוספו לאינדקס על כל אובייקט של מערכת קבצים יחד עם כמה נתונים נוספים שגורמים לחיפושי Spotlight מהירים. על ידי אחסון ועדכון מטא נתונים של קבצים במסד נתונים נפרד, Spotlight יכול לחפש ולאחזר נתונים הרבה יותר מהר מכיוון שהוא לא צריך לעבור את ההיררכיה של מערכת הקבצים בכל פעם.
בנפחי APFS Spotlight משתמשת גם בחלק ממטא-נתונים של נפח פנימי בשילוב עם מטא-נתונים של חנות לחיפוש מהיר ומדויק יותר.
ישנן פקודות רבות של Spotlight CLI זמינות, אך ארבעת המפתחות שבהן תרצה ככל הנראה להשתמש הן:
- מדוטיל
- mdimport
- mdls
- mdfind
אתה יכול לקבל מידע שימוש על כל אחד מאלה בטרמינל על ידי פתיחת טרמינל ולאחר מכן הקלדהman
ואחריו רווח, שם כלי השירות, ולאחר מכן לחיצהלַחֲזוֹרבמקלדת שלך.
לְדוּגמָה:
man mdutil
שים לב שחלק מהפקודות דורשות פרמטר של מערכת קבצים אחרי שם הפקודה וחלק לא. לְדוּגמָהmdutil
לא, אבלmdattributes
עושה.
כדי לצאת מman
מערכת (ידנית) בעיתונות מסוףControl-Z
במקלדת שלך.
מדוטיל
הmdutil
command הוא כלי עזר פשוט שעוזר לנהל את מאגרי המטא נתונים של Spotlight ב-Mac שלך. שימו לב שיש להרכיב אמצעי אחסון על שולחן העבודה ב-Finder עבורmdutil
לעבוד על זה.
לדוגמה, באמצעותmdutil
אתה יכול להפעיל ולכבות את חנויות Spotlight עבור אמצעי אחסון ספציפיים, להשבית חיפושים באותו אמצעי אחסון, למחוק את החנות עבור אמצעי אחסון, להציג את מצב הוספה לאינדקס של Spotlight עבור אמצעי אחסון ועוד.
אתה יכול גם להחיל פקודות ספציפיות על חנויות Spotlight בכל אמצעי אחסון באינדקס, ולשטוף מטמונים של חנות Spotlight כדי לאלץ שימוש ישיר בחנות עצמה.
סוּגman mdutil
ולחץלַחֲזוֹרעל המקלדת שלך בטרמינל למלאmdutil
נוֹהָג.
mdimport
mdimport
הוא כלי עזר Spotlight CLI המאפשר לייבא באופן ידני את כל המטא-נתונים הניתנים לחיפוש מהיררכיית מערכת הקבצים לתוך מאגר מטא-נתונים של Spotlight. הוא משתמש בתוספים .mdimporter שהוזכרו לעיל כדי לייבא ולחפש נתונים.
אתה יכול להשתמשmdimport
כדי להדפיס את כל פריטי המטא נתונים המאוחסנים עבור כל פריט שנוסף לאינדקס בהיררכיית מערכת קבצים - למעט פריטים המאוחסנים עםkMDItemTextContent
מפתח שכן פריטים אלה מכילים את תוכן הטקסט בפועל של פריטי מערכת הקבצים.
אתה יכול גם להשתמשmdimport
כדי לבדוק תוספי .mdimporter אתה או הצוות שלך כותבים.
סוּגman mdimport
ולחץלַחֲזוֹרעל המקלדת שלך בטרמינל למלאmdimport
נוֹהָג.
mdls
mdls
הוא כלי עזר המפרט מטא נתוניםתכונותעבור קובץ בודד בדיסק באמצעות מפתח מטא נתונים מוגדר מראש (או 'תג'). אפל מגדירה את רוב מפתחות המטא נתונים שבהם משתמשים Spotlight, אבל אם אתה כותב .mdimporter משלך, אתה יכול להגדיר מפתחות משלך.
סוּגman mdls
ולחץלַחֲזוֹרבמקלדת שלך בטרמינל עבורmdls
נוֹהָג.
mdfind
mdfind
הוא כלי עזר גמיש ורב עוצמה המאפשר לך למצוא את כל האובייקטים בהיררכיית מערכת קבצים התואמים מטא נתונים ספציפיים שאתה מציין - על ידי חיפוש במאגר(ים) של Spotlight על אמצעי אחסון מסוים.
שימוש באפשרויות שונות כדיmdfind
אתה יכול להתחיל חיפוש במקום מסוים בהיררכיית מערכת הקבצים, לציין אילו פריטי מטא נתונים להתאים ולציין שמות קבצים ספציפיים שיתאימו.
mdfind
יחזיר רק את התוצאות של קבצים התואמים את קריטריוני החיפוש שציינת.
אתה יכול לבטל אmdfind
חפש בזמן שהוא פועל על ידי הקלדהControl-Cבמקלדת שלך.
יש גם א-interpret
דגל לmdfind
מה שמאפשר לך לציין מחרוזת שפה טבעית ממש כאילו הקלדת אותה ב-Spotlight ב-Finder.mdfind
יפרש את המחרוזת ויתאים את החיפוש שלה בהתאם.
אפשר גם לשלבmdfind
עם כלי עזר סטנדרטיים אחרים של UNIX כגוןgrep
לבצע חיפושים מורכבים ולהעביר את התוצאות לפלט סטנדרטי כולל לקובץ.
סוּגman mdfind
ולחץלַחֲזוֹרבמקלדת שלך בטרמינל עבורmdfind
נוֹהָג.
ישנם מספר כלי עזר נוספים של Spotlight שלא הוזכרו כאן, עליהם נעסוק במאמר עתידי.
מפתחות תכונה
Spotlight ו- Core Services File Metadata פועלים על ידי אחסון כל פריט מטא נתונים בחנות באמצעות מפתח ייחודי אוחוּט. כל מפתח אומר ל-Spotlight ול-API באיזה פריט מטא נתונים אתה מעוניין.
אפל מגדירה את מפתחות המטא נתונים כמחרוזות Core FoundationCFString
- סוג מחרוזת Core Foundation נפוץ המשמש כמעט בכל התוכנות הקשורות לאפל. באמצעות Core Foundation API אתה יכול גם לתפעל CFStrings ישירות מהקוד.
אפל מפרטת את רוב מפתחות מאפייני המטא נתונים בתיעוד ה-API של File Metadata שהוזכר לעיל. רוב המקשים מתחילים בקידומתkMD
(קיצור של 'קבוע' - 'metaData').
כדי להשתמש ב-File Metadata API, אתה בדרך כלל משתמש באחת מהפונקציות שלו או באחת מהפונקציות של Spotlight ומציין מפתח מטא נתונים כדי לציין באיזה חלק של מידע מטא נתונים אתה רוצה להשתמש. ניתן להשתמש במפתחות הן בעת אחזור וכתיבת מטא נתונים.
לדוגמה, במָהִיר, מפתח ה-API של metadata עבור פריט המטא-נתונים 'תאריך נוסף' עבור כל אובייקט נתון של מערכת קבצים מוגדר כ:
let kMDItemDateAdded: CFString!
או ב-Objective-C:
const CFStringRef kMDItemDateAdded;
(ב-Objective-CCFStringRef
הוא סוג Core Foundation האטום עבור CFSstring).
אם אתה מפתח של אפל ומשתמש ב-File Metadata API, תמצא את עצמך משתמש במפתחות המטא נתונים לעתים קרובות.
עבור קובצי מדיה אודיו/וידאו, אפל מספקת API אחד נוסף ב-AVFoundationמִסגֶרֶת.
זה נובע מכמה סיבות, כמו האופן שבו בדרך כלל יש לטעון מטא-נתונים של מדיה באופן אסינכרוני בזמן ריצה על מנת למנוע השהייה במהלך הפעלת מדיה, בעוד שחלק מטא-נתונים נדרשים על-פי תקני מדיה בתעשייה. חוקים מסוימים באזורים שונים דורשים גם הטמעת מטא נתונים של בעלים ומחבר בקובצי מדיה בדרכים מסוימות.
סוג הנתונים המרכזי של פריט המטא נתונים של Apple ב-AVFoundation נקרא anAVMetadataItem
. AVFoundation מספקת ממשקי API שונים לגישה ולכתיבה שלAVMetadataItem
.
יש גם סט מקביל שלAVMetadataItem
תכונות (מפתחות) המשמשות לגישה ל-AVMetadataItem
.
כל נכס מדיה של AVFoundation מוגדר על ידי סוג נתונים שלAVAsset
.
מסלולים בתוך כל נכס מוגדרים על ידי אפל כ-AVAssetTrack
.
כֹּלAVAsset
או למסלול יכול להיות אחד או יותרAVMetadataItem
מחובר אליו.
אתה יכול ליצורAVAsset
אובייקטים בקוד באמצעות ממשקי API שונים של AVFoundation שיכולים לטעון אותם מקובץ (לדוגמה, קובץ QuickTime או .mp3), או אפילו מזרם חי של Apple HLS.
כדאי גם לבדוק את API לטעינת מדיה אסינכרונית המיושם כפרוטוקול AVFoundationAVAsynchronousKeyValueLoading
.
ברגע שיש לךAVAsset
אוֹAVAssetTrack
אובייקט בקוד, אתה יכול לתפעל את תכונות המטא נתונים שלו כרצונך ולכתוב אותם בחזרה למקור שלהם.
למידע מלא על נכסים ומסלולים של AVFoundation עיין בדף המפתחיםתיעוד/AVFoundation/נכסי מדיה.
לרשימה מלאה של כל מפתחות המטא נתונים של AVFoundation עיין בדף המפתחיםתיעוד/AVFoundation/נכסי מדיה/AVMetadataKey.
AVFoundation היא מסגרת מורכבת ויש מאות מפתחות עבור ה-API שלה.
מטא נתונים של Spotlight נראה כמו נושא מורכב בהתחלה, אבל ה-API שלו הוא די פשוט לשימוש. כלי העזר של CLI הם גם פשוטים וקלים להבנה לאחר תרגול קטן.
באמצעות הכלים האלה תוכל להתאים אישית ולחפש את נתוני Spotlight שלך בכל הכרכים שנוספו לאינדקס ללא מאמץ רב מדי.