Windows サーチ

**Windows サーチ**（ウィンドウズ サーチ, Windows Search）はマイクロソフトから無償提供されているWindows向けのデスクトップ検索ツール、およびWindows Vista以降、同ツールが標準で搭載された検索機能。公式リリース前から「MSN デスクトップサーチ」として知られており「MSNサーチツールバー」の付属ツールという位置づけだった。その後、Windowsデスクトップサーチ (WDS) と名称を変えた。2005年リリースのバージョン2はWindows 2000、Windows XPおよびWindows Server 2003で利用可能だったが、2006年のバージョン3はXPとServer 2003のみで利用可能となった。

バージョン3.0以降、インデクサはWindowsサービスとして稼働するようになったため、1つのインデックスを（Windowsサービスのインスタンスと同様）複数のユーザーで共有可能となり、パフォーマンスが改善された。

Windows VistaではWDS 3.0と互換性を持つAPIで動作する機能を「Windows Search」という名称で実装した。同じように、Windows 2000からWindows 2003 Serverまでは、ハードディスクのファイルをインデックス化して検索に寄与する「インデックスサービス」という機能を備えていた。しかし、それには適切なUIが備わっておらず、エクスプローラの検索機能や、MMCスナップインによって間接的に利用されなければいけなかった。またインクリメンタルサーチも出来なかった。

2008年6月にはVistaでの名称にあわせ「Windows Search」としてバージョン4.0がリリースされた。対応OSはWindows XP/Server 2003/Vista/Server 2008/XP x64/Server 2003 x64/Vista x64/Server 2008 x64。このバージョンではリモートPCで作成されたインデックスを使用して検索が出来るようになり、EFS暗号機能を使った暗号化ファイルの検索にも対応した。

## 概要
インストール後、Windows サーチはユーザーのハードディスクにあるファイルを走査し、インデックスを構築する。これには数時間かかる場合もあるが、最初の1回だけでよい。いったんインデックスが作成されれば、Windows サーチを使って検索するとき、このインデックスを利用してコンピュータ上のすべてのファイルを高速に検索することが可能となる。検索ではファイル名だけでなく、キーワード、コメント、メタデータのほか（ファイルタイプに適した文書フィルタがインストールされていれば）ファイル内の文章に対しても行うことが可能となる。例えば、「ビートルズ」で検索すれば、それをファイル名に含むファイル、本文に「ビートルズ」の文字列を含むあらゆる文書、電子メール、そしてビートルズの楽曲ファイルをも一覧表示してくれる。

Windows サーチの特長の1つにインクリメンタルサーチがある。これは文字が検索ボックスに入力されると、即座に検索を開始し、入力文字が増えるに従って検索結果を絞り込んでいくというものだ。これによりすべての文字列を入力し終わる前に、探しているファイルを見つけ出せる可能性がある。

Windows サーチはAdvanced Query Syntax (AQS)によって構築された先進的なクエリをサポートする。AQSはファイルタイプに応じたフィルタ群を提供すると同時に、検索ワードのブーリアン演算（AND, OR, NOT）のような検索クエリをリファインする。また、一般的なファイルやオフラインファイル・キャッシュ、電子メールなどから特定の情報から結果を絞り込むのにも使われる。Windows サーチではファイルタイプごとの検索やワイルドカードによる検索もサポートされている。デフォルトではワード、エクセル、パワーポイント、HTML、テキストなどの文書ファイル、MP3、WMA、WMV、ASF、AVIといったマルチメディア、JPEG、BMP、PNGといった画像ファイルに対応しており、各種ベンダによって提供されるIFilterもサポートしている。IFilterは特定のファイル形式と対応づけられ、インデックス作成時にファイルからテキスト情報を抽出するために利用される。ファイルからメタデータを処理するためにはプロパティ・ハンドラが利用される。Windows サーチがメタデータをインデックス化する際に、プロパティ・ハンドラはプロパティの内容とスキーマを必要とする。プロトコル・ハンドラは特定の格納データをインデックス化する際に用いられる。たとえば、一般的なファイルはファイルシステム・プロトコル・ハンドラを、Outlookの格納データならOutlookプロトコル・ハンドラを、IE履歴、キャッシュの場合はIE履歴・キャッシュ・プロトコル・ハンドラを利用してアクセスされる。

Windows サーチは検索結果をサムネイル表示するためのペイン（表示領域）を備えている。また、他のアプリケーションがインデクシング・サーチ機能を利用できるようにAPIを提供する。このAPIを利用すれば、アプリケーションは全インデックスあるいはその一部で特定のパラメータに基づいた検索クエリを発行することが出来るようになる。その結果は該当アプリケーションのインターフェイス上に表示され、そこからすすんで、条件による絞り込みなどの処理も可能にする。Outlook 2007やOneNote 2007といったアプリケーションはそれ自身によって作成されたユーザーデータにインデックスを付け、アプリケーション内で検索する機能を備えている。これらもWindows サーチAPIによって提供されている。これらの機能にはWDS 3.0もしくはWindows サーチ4.0がインストールされているか、Windows Vista以降備わった検索機能が必要とされる。XP/Server 2003の場合、Windows サーチインストール後、タスクバーにテキスト・フィールドが追加される。そこに入力された検索クエリに応じて、結果がフライアウト・ペイン上に表示される。Windows サーチの検索UI上でリストアップされたファイルをクリックすることで、ファイルを開くことなく、右側のプレビュー・ペインに内容が表示される。ウェブ検索も同じインターフェイスから行なうことができる。

## Windows Vistaの検索機能
Windows Vistaの検索機能はWindowsデスクトップサーチ3.0に基づいたものでAPIも同様に提供されるため、WDS APIを利用するアプリケーションはWindows Vistaでも同様に稼働する。インデックス型の検索機能はWindows Search Serviceによって提供される。インデクサは低いプライオリティ（優先順位）で動作するため、他のプロセスが帯域やCPU処理を要求するときは、システム全体の負荷を上げないように配慮される。

Windows Search Serviceでは次の3つのプロセスが実行される。
* SearchIndexer.exe　インデクサ本体
* SearchProtocolHost.exe　プロトコルハンドラをホストする
* SearchFilterHost.exe　IFilterをホストする

Windows Vistaの検索機能にはWDS 3.0にない特徴が含まれている。
* オフラインファイルのインデックス化
* 新しいファイルシステムに対応したLow-Priority I/O
* ネットワーク共有されているコンテンツがサーバ上でインデックス付与された場合、別のWindows VistaかWindows Server 2008でリモート検索が可能となる。
* インデックス型検索とGrep型検索の併用が可能
* 自然言語検索のサポート

Vistaではスタートメニューから検索する場合、「最近使用されたプログラム」を表示せず、検索結果を表示する。同様にコントロールパネルではコントロールパネル・オプションを検索することが出来る。

Vista以降のWindows OSには同等の検索機能が標準で備わっている。

## 関連項目
* 全文検索
* Microsoft Windows Vista

## 外部リンク
* IFilter.Org （英語）