検索プロトコルの使用

search: アプリケーション プロトコル は、Windows Vista Service Pack 1 (SP1) 以降のバージョンでデスクトップ検索アプリケーションを呼び出すための拡張可能な規則です。 このプロトコルは、Windows Vista SP1 で作成され、Windows が既定のデスクトップ検索アプリケーションを決定して呼び出すことができるようになりました。

プロトコル構文は、ユーザーが入力した検索用語や検索を開始した場所など、一般的なデスクトップ検索を実行するのに役立ついくつかのパラメータを提供します。 ユーザーが 2 つの利用可能な検索エントリ ポイント (スタート メニューまたは Windows Explorer) のいずれかから検索すると、オペレーティング システムは検索プロトコルを使用して既定のデスクトップ検索アプリケーションを起動します。 これは、ユーザーが入力した検索用語を標準の検索プロトコル構文に追加し、その情報をデフォルトの検索アプリケーションとして登録されているアプリケーションに渡すことによって行われます。

他のデスクトップ検索アプリケーションがインストールされていない場合、これらのエントリ ポイントに検索を入力すると、Windows Search Explorer が起動します。 ただし、サードパーティの開発者は、検索プロトコルを処理し、デフォルトの検索アプリケーションとなるアプリケーションを作成、インストール、登録することができます。 このようなアプリケーションは、Windows とのシームレスなエクスペリエンスを確保するために、検索プロトコル構文をサポートし、 既定のプログラム 機能に登録する必要があります。

特定のデスクトップ検索アプリケーションを使用するか、その上に構築することを目的としたアプリケーションを開発する場合は、search: プロトコルのみに依存しないでください。 多くのアプリケーションが search: プロトコルを所有している可能性があるため、対象のデスクトップ検索アプリケーションが常にこのプロトコルを所有しているという保証はありません。 代わりに、対象のデスクトップ検索アプリケーションによって定義されたプライベート検索プロトコルを使用する必要があります。 つまり、サードパーティ アプリケーションのプラットフォームとなることを意図したデスクトップ検索アプリケーションは、 search: プロトコルと独自の検索プロトコルの両方をサポートする必要があります。

Note

search: プロトコルは、独自の search-ms: プロトコルを置き換えるものではありません。 アプリケーションは引き続き search-ms: プロトコルを使用して、Window Search Explorer を起動したり、Windows Search インデクサーをサイレントにクエリしたりできます。

 

このトピックでは、以下の内容を説明します。

構文

検索プロトコルでは、次の標準の URL エンコード構文が使用されます。

search:parameter=value[&parameter=value]&

構文はプロトコル自体を識別することから始まります (search:)。 パラメータ/値のペアは、検索エンジンに渡される引数です。次の表に、検索プロトコル構文で使用可能なすべてのパラメータを示します。

パラメーター 価値 説明
クエリ URLエンコードされたテキスト ユーザーが入力したクエリ テキスト。
inputlocale 有効な言語コード識別子 (LCID) クエリの入力言語を識別する LCID。
keywordlocale 有効なLCID インデクサーの国際バージョンの言語を識別する LCID。 デフォルトは 1033 (en-us) です。
crumb AQS ステートメント この引数は検索範囲を制限します。 Windows Vista では、検索プロトコルは完全な AQS と、 location引数の特別な実装をサポートします。 Windows XP では、検索プロトコルは kindstore の特別な実装を除いて、完全な AQS もサポートします。
構文 NQS、AQS(大文字と小文字は区別されません) インデックスの検索に使用するクエリ構文: 自然クエリ構文または高度なクエリ構文 (AQS) のいずれか。 AQS はデフォルトであり、常に解析されサポートされていると想定されます。
stackedby プロパティシステムからの有効なプロパティ 結果を積み重ねる列を指定するプロパティ。
subquery 保存された検索ファイル (*.search-ms) の完全指定パス サブクエリの結果はクエリのソースとして使用されます。 つまり、クエリ用語はサブクエリの結果に対して検索されます。
displayName URL エンコード文字列 現在の検索の名前。

 

Windows Vista SP1 での検索の使用: プロトコル

Windows Vista SP1 には、 search: プロトコルを呼び出すエントリ ポイントがいくつかあります。 これらのエントリ ポイントと、それぞれに関連付けられた共通の構文の概要を次に示します。

検索プロトコルのエントリポイント 場所 クエリが呼び出されました
どこでも検索 [スタート] メニュー search:query=<検索語>
どこでも検索 Windows エクスプローラー search:query=<検索語句>&crumb=location:<場所>
Windows ロゴ キー +F 任意の場所 検索:
CTRL + F Windows エクスプローラー search:query=<検索語句>&crumb=location:<場所>
F3 [スタート] メニュー 検索:
F3 Windows エクスプローラー search:query=<検索語句>&crumb=location:<場所>

 

Windows Vista SP1 の検索プロトコル エントリ ポイントでは、検索プロトコルで使用可能なすべてのパラメータが活用されるわけではありません。 Windows Vista SP1 からの検索プロトコル呼び出しの処理のみに関係するアプリケーションでは、実装する必要のある最小限の要素のガイドとして次の表を使用できます。

パラメーター Windows で使用されていますか? Windows Vista SP1 が検索を呼び出すときにこれを使用する方法:
クエリ はい ユーザーが入力したクエリ テキスト。
crumb はい crumblocation 引数を使用して、クエリの送信元を指定します。
subquery はい サブクエリ 引数の結果は、検索する項目の範囲として使用されます。 これは通常、ユーザーが .search-ms ファイルを使用して検索し、その検索内からデフォルトのデスクトップ検索アプリケーションを呼び出す場合に使用されます。
inputlocale いいえ 現在は使用しません。
keywordlocale いいえ 現在は使用しません。
構文 いいえ 現在は使用しません。
stackedby いいえ 現在は使用しません。
displayName いいえ 現在は使用しません。

 

ユーザーが [スタート] メニューに「Microsoft」と入力し、 [どこでも検索] をクリックすると、次のような検索プロトコル呼び出しが行われます。

search:query=microsoft&

ユーザーが Windows Explorer の C:\MyFolder 内で「Seattle」と入力し、 [すべての場所を検索] をクリックすると、':' と '\' のエスケープ文字を使用して次の呼び出しが行われます。

search:query=seattle&crumb=location:C%3A%5CMyFolder

プロトコルを処理するアプリケーションの登録

複数のアプリケーションが検索プロトコルを競合する可能性があるため、インストール中にアプリケーションを 既定のプログラム 機能に登録して、ユーザーが既定値をより簡単に構成できるようにする必要があります。 Windows XP で通常実行されるインストール手順に加えて、Windows Vista ベースのアプリケーションは、アプリケーションとユーザーがシームレスにデフォルトを構成できるように、既定のプログラム機能に登録する必要があります。

必要なバイナリ ファイルをユーザーのコンピューターにインストールした後、インストール ルーチンは次の一般的なタスクを完了する必要があります。

  1. 下記の説明に従って、ProgID を HKEY_LOCAL_MACHINE に書き込みます。 アプリケーションは、検索プロトコル用にアプリケーション固有の ProgID を作成する必要があることに注意してください。
  2. マシンレベルの検索プロトコルの関連付けを要求します。
  3. デフォルト プログラムで使用するためのアプリケーションの登録」で説明されているように、検索プロトコルの候補として、アプリケーションを デフォルト プログラムに登録します。

レジストリ エントリ

以下は、架空のデスクトップ検索アプリケーション Contoso Search に必要なレジストリ エントリの例です。

HKEY_LOCAL_MACHINE
   SOFTWARE
      Classes
         contoso-search
            URL Protocol = ""
HKEY_LOCAL_MACHINE
   SOFTWARE
      Classes
         contoso-search
            DefaultIcon
               (Default) = %ProgramFiles%\Contoso\Search\contososearch.exe,-7
HKEY_LOCAL_MACHINE
   SOFTWARE
      Classes
         contoso-search
            shell
               open
                  command
                     (Default) = %ProgramFiles%\Contoso\Search\contososearch.exe %1
HKEY_LOCAL_MACHINE
   SOFTWARE
      RegisteredApplications
         Contoso Search = "Software\\Contoso\\Search\\Capabilities"
HKEY_LOCAL_MACHINE
   SOFTWARE
      Contoso
         Search
            Capabilities
               ApplicationName = "Contoso Search Test App"
               ApplicationDescription = "Contoso search is a great new desktop search application"
HKEY_LOCAL_MACHINE
   SOFTWARE
      Contoso
         Search
            Capabilities
               UrlAssociations
                  search = "contoso-search"

詳細クエリ構文

既定のプログラム