執筆者: エディフィストラーニング株式会社 矢嶋 聡

動作確認環境: Windows 7

更新日: 2010 年 3 月 12 日


Windows 7 のフェデレーション検索に対応したサービスを、実際に Windows 7 のエクスプローラーから接続できるようにするには、サービス側は OpenSearch Description File (.osdx ファイル) を用意する必要があります。ここでは、Visual Studio 2010 (または Visual Studio 2008) の「配信サービス ライブラリ」プロジェクト テンプレートを使用して作成したサンプルのサービスをエクスプローラーから接続するための、OpenSearch Description File の作成方法を示します。

Note: ここで使用するサンプルのサービスは、「Windows 7 のフェデレーション検索に対応するサービスを、Visual Studio の「配信サービス ライブラリ」で素早く作成する」で作成したものを使用します。

OpenSearch Description File は XML 形式のファイルで、決められた名前のいくつかの XML 要素から構成されます。主な内容としては、接続すべきサービスのアドレスと、検索する際に必要なクエリ文字列のパラメーターの書式などが記述されています。ここで使用するサンプルのサービスに接続するために必要な OpenSearch Description File の例を次に示します。

例 1. XML (.osdx ファイル)

<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
  <ShortName>サンプル MySearch1 サイト</ShortName>
  <Description>これはサンプルのサーチサイトです</Description>
  <Url type="application/rss+xml" template="http://localhost:8732/Design_Time_Addresses/MySearch1/Feed1/?query={searchTerms}"/>
</OpenSearchDescription> 

作成に使用するツールには制約はなく、メモ帳でも作成できます。ただし、この例では UTF-8 形式であることを冒頭に宣言しているので、UTF-8 形式で保存してください。(紙面の都合で途中改行している箇所がありますが、文字列リテラルの部分は改行せずに入力してください。) また、拡張子が .osdx であれば、ファイル名は問いません。

上記のように、<OpenSearchDescription> 要素ブロックの中に必要な情報を記述します。また、<ShortName> 要素には、エクスプローラー上で識別するためのサービスの名前を指定します。同様に、<Description> 要素には、エクスプローラー上に表示されるサービスの説明を記述します。

特にサービスに接続する上で重要な情報は <Url> 要素です。この要素では、サービスが返す情報のコンテンツ タイプを type 属性に指定するほか、template 属性にはサービスへのアクセス方法を指定します。

ここでは、サンプルのサービスにアクセスするためのエンド ポイントのほか、「?」マーク以降には、検索の際に使用されるクエリ文字列のパラメーターの形式を指定しています。このサンプルのサービスでは、エンド ポイントとしてサービス側のプロジェクトの App.config ファイルに、次の例の黄色部分のように、ベース アドレスおよびサービスの相対アドレスが指定されています (ポート番号は環境によって異なります)。

例 2. App.config


<service name="MySearch1.Feed1">
 <host>
   <baseAddresses>
     <add baseAddress="http://localhost:8732/Design_Time_Addresses/MySearch1/" />
   </baseAddresses>
 </host>
 <endpoint contract="MySearch1.IFeed1" address="Feed1"
  binding="webHttpBinding" behaviorConfiguration="MySearch1.Feed1Behavior"/>
</service>

また例 1 では、template 属性には、"query" という名前のパラメーターを使用することを指定しています。さらに、この属性の "{searchTerms}" の部分は .odsx ファイルで使用可能な予約されたトークンであり、検索キーを意味します。よってクエリ文字列は、「?query=検索キー」と指定することになり、この .osdx ファイルを介して、エクスプローラーは検索時に渡すべきクエリ文字列を認識できます。

Note: このトークンのほかにも、予約されたトークンが複数あります。詳しくは、以下のアドレスを参照してください。

http://msdn.microsoft.com/en-us/library/dd742951(VS.85).aspx (英語)

Creating an OpenSearch Description File in Windows Federated Search

フェデレーション検索のためにサービスへ接続するには、例 1 の.osdx ファイルをエクスプローラー上でダブルクリックします。すると、次の図 1 のようにダイアログ ボックスが表示されるので、[追加] をクリックします。

図 1. フェデレーション検索のための接続の確認

接続に成功すると、エクスプローラーの左ペインのツリーには、次図のように「お気に入り」ノードの配下に「サンプル MySearch1 サイト」サービスが追加されます。また下部には、サービスの説明が表示されます。そのほかにも「リンク」ノードと「検索」ノードに、「サンプル MySearch1 サイト」サービスが追加されます。

図 2. サンプル MySearch1 サイトを追加

ここで、右上部の検索ボックスに「Visual Studio」と入力し [Enter] キーを押して検索を実行すれば、次の図 3 のように検索結果がエクスプローラー上に表示されます。

図 3. サンプル MySearch1 サイトへの検索


Code Recipe Code Recipe

ページのトップへ