検索プロトコルの使用
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[¶meter=value]&
構文はプロトコル自体を識別することから始まります (search:)。 パラメータ/値のペアは、検索エンジンに渡される引数です。次の表に、検索プロトコル構文で使用可能なすべてのパラメータを示します。
パラメーター | 価値 | 説明 |
---|---|---|
クエリ | URLエンコードされたテキスト | ユーザーが入力したクエリ テキスト。 |
inputlocale | 有効な言語コード識別子 (LCID) | クエリの入力言語を識別する LCID。 |
keywordlocale | 有効なLCID | インデクサーの国際バージョンの言語を識別する LCID。 デフォルトは 1033 (en-us) です。 |
crumb | AQS ステートメント | この引数は検索範囲を制限します。 Windows Vista では、検索プロトコルは完全な AQS と、 location 引数の特別な実装をサポートします。 Windows XP では、検索プロトコルは kind と store の特別な実装を除いて、完全な 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 | はい | crumb は location 引数を使用して、クエリの送信元を指定します。 |
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 ベースのアプリケーションは、アプリケーションとユーザーがシームレスにデフォルトを構成できるように、既定のプログラム機能に登録する必要があります。
必要なバイナリ ファイルをユーザーのコンピューターにインストールした後、インストール ルーチンは次の一般的なタスクを完了する必要があります。
- 下記の説明に従って、ProgID を HKEY_LOCAL_MACHINE に書き込みます。 アプリケーションは、検索プロトコル用にアプリケーション固有の ProgID を作成する必要があることに注意してください。
- マシンレベルの検索プロトコルの関連付けを要求します。
- 「デフォルト プログラムで使用するためのアプリケーションの登録」で説明されているように、検索プロトコルの候補として、アプリケーションを デフォルト プログラムに登録します。
レジストリ エントリ
以下は、架空のデスクトップ検索アプリケーション 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"
関連トピック