米Appleより開発、提供等が行われている、デスクトップ検索テクノロジ(メタデータ検索)。macOS(Mac OS X)を対象プラットフォームとし、米国時間2005年4月29日付にてリリースされた「Mac OS X 10.4 Tiger」において、中核機能の一つとして新たに実装された。機能の実装には、BeOSのファイルシステム「BFS(Be File System)」、macOSののファイルシステム「APFS(Apple File System)」の開発にも尽力したDominic Giampaolo(ドミニク・ジャンパオロ)が携わっており、独立したアプリケーションではなく、システムレベルで統合されている。
Table of Contents
メタデータ検索とインクリメンタルサーチで、広範にして高速な検索を実現
常時バックグラウンドにてmdsエンジンが稼働し、クエリ用のAPIが整備されている事からも、システム構造上は BSDレイヤより低位に属するコアに近い機能と解釈する事ができる。メニューバー右端に配置されている虫眼鏡アイコンは 検索機能のフロントエンドに相当し、一方では「mdfind」「mdls」といったSpotlightの機能にアクセスする事ができるUNIXコマンドも用意されている。
↑「Mac OS X 10.4 Tiger」における Spotlightの検索語入力フィールド
従来までの ファイル名や修正日等に基づいたアプローチとは異なり、種々のメタデータを含む、ファイルの内容にまで着目したインテリジェンスな検索の実行を可能としている。このメタデータとは、データ自身について、ファイル名とは別に データに関する補足、属性等が記述されたデータと定義する事ができ、これには、EXIF(Exchangeable image file format)情報、ID3タグ、フォーマット、エンコードソフトウェア、コーデック、データレート、サンプリングレート、ビットレート、テキストエンコーディング、ジェネレータ(作成アプリケーション)等、様々な情報が含まれる。尚、画像データのメタ情報は「Adobe Photoshop Lightroom」や、macOS標準の「Photo.app」等で確認する事も可能。
※メタデータの「メタ」は、ギリシャ語で「~について」「超越する」「~の上の」等、様々な意味と使い方があるが、メタデータにおける「メタ」は「~について」、英語における「about」と同義であると解釈する事ができる。つまりメタデータとは抽象的ではあるが、データ自体の表現や記述に使われるデータを指しており、表現される側のデータが対象データ、表現する側のデータがメタデータとなる。
また、検索クエリ入力の1文字追加毎に 検索結果がドロップダウンにてリアルタイムに更新(絞り込み)されるインクリメンタルサーチ、mdworker(mdimporter)によるインデックス管理等により、高いパフォーマンスを実現している他、永続的な検索結果をフォルダレベルにて反映可能な「Smart Folder(スマートフォルダ)」機能の提供、及びプラグインを介した他アプリケーションに対する付加機能としての組み込み等もサポートしている。
検索範囲は 各種のローカルディスクのみならず、2007年10月26日付にてリリースされた「Mac OS X 10.5 Leopard」より、リムーバブルメディアやネットワーク上の共有ボリューム(フォルダ)を対象としたインデックスの作成にも対応している他、Wikipedia、Maps、News、Bing、iTunes Store、iBooks Store、App Store等、各種ネットワークサービスのコンテンツも対象としている(インデックス対象となるボリューム内であっても、アクセス権によって制限されている領域や不可視ファイル、及びバンドルパッケージ内のファイル等は、メタデータ検索の対象に含まれない)。
また、「Finder」「System Preferences(システム環境設定)」、ナビゲーションサービス(米国時間1998年10月17日付にてリリースされた「Mac OS 8.5 Allegro」より導入され、各アプリケーションで、任意のファイルを開く(或いは保存する)場合に表示されるダイアログボックス)等、OSレベルで提供される各種のサービスにも その機能性を享受している。
↑「Mac OS X 10.4 Tiger」より導入された、Spotlight検索と連動したナビゲーションサービス。ここでの検索では、細かな条件指定を行う事はできず、「OR検索」「NOT検索」も機能しない
また、アプリケーションレベルでは、Webブラウザ「Safari」における閲覧履歴(ヒストリ)、日本語対応を含む「Dictionary(辞書)」、「Mail(メール)」等にも対応している他、「Help(ヘルプ)」メニューに配置された検索ボックスからは、各種ヘルプコンテンツを直接検索する事も可能としている(メニュー項目を検索対象に追加した事によって、検索クエリを含む当該項目も併せてリストアップ可能)。
このように、プラグイン等の使用により、拡張される側だった「Sherlock(シャーロック)」とは異なり、 Apple純正ソフトウェアのみならず、サードパーティベンダのソフトウェアに対する機能の組み込みも可能となっている。
尚、「Finder検索」は、「Mac OS X 10.3 Panther」以前のファイル検索の対象範囲に メタデータの要素を加えただけの機能ではなく、検索条件の指定にも様々なメタデータの内容を個別に指定する事が可能となっている他、検索結果のウインドウ内では、任意のファイルのパスが視覚的に確認可能となっている。
↑「Mac OS X 10.4 Tiger」における 検索結果の表示ウインドウ
米国時間2014年10月16日付にてリリースされた「OS X Yosemite(OS X 10.10)」では、従来までメニューバー右端の虫眼鏡アイコン直下に表示されていた検索フィールドが、デスクトップ中央に配置されてるべくした変更が適用された。ここでの検索結果は、項目別に分類されたドロップダウンリストで表示され、各種のドキュメント(イメージやPDF等)等をクリックする事によって、サムネール(コンテンツのプレビュー表示)、更新時刻等、ファイル毎の詳細を確認する事も可能となっている。また、「Show all in Finder…(Finderにすべてを表示…)」をダブルクリック(或いはリターンキーを押下)する事によって、新規Finderウインドウでの表示にも対応している。
Spotlightを支えるインデックスファイル
当検索テクノロジの特徴の一つである高速なレスポンスは、ルートディレクトリ直下の不可視フォルダ「/.Spotlight-V100/」以下(サブディレクトリ「Store-V1」「Store-V2」)に保存されているインデックスファイルによって齎されており、これはmacOS(Mac OS X)のインストール後、初回起動直後に自動的に作成される事となる(インポート(メタデータの収集、インデックス化)に要する時間は、環境によって差がある)。
作成した索引に対しては、「Terminal(ターミナル)」を通じて「mdutil」コマンドを実行する事によって、各種の制御を行う事ができる(要管理者権限)。これには、ストアされているインデックスの削除から再構築(-E)、任意のボリュームに対する インデクシング自体の有効化、無効化(-i)、ストアされているメタ情報のリストの出力(-L)、インデックスステータスの出力、インデックス範囲のカスタマイズ、索引対象か否かの確認、詳細情報の表示等が含まれる。
尚、インデックスの再構築後には、ファイルの追加、削除を繰り返した事によって生じていたインデックスの冗長化(フラグメンテーション)が解消され、インデックスファイルの容量が減少するケースもある。
Plug-in(プラグイン)による機能の組み込み
Spotlightは、特定のアプリケーションにて作成された独自形式のデータから メタデータを収集するための機能を2種のメソッドで提供しており、一つは「/System/Library/Spotlight/」「/Library/Spotlight/」階層に属する Spotlightインポータ等のプラグインファイル(拡張子「mdimporter」)を参照させる形式、もう一つは「BathyScaphe」のように アプリケーション本体に機能を統合する形式となっている。このように、プラグインを別途に提供する形をとれば、アプリケーションに対して 後付けにてSpotlightの機能を付加する事も可能となっている(最終更新日 2019年2月10日)。