次の方法で共有


Windows フェデレーション検索でのデータ ストアの有効化

OpenSearch Web サービスによってデータ ストアにアクセスできるようにする方法と、それを行うための潜在的な障壁を回避する方法について説明します。

このトピックは次のように整理されています。

検索要求の受け入れの条件

Web サーバーで作成する OpenSearch Web サービスは、次の 2 つの要件を満たす 必要があります

  • クライアントからクエリを GET URL 受け入れることができるようにする。

  • 検索語句を URL に埋め込むのを許可します。

    次の例は、検索語句を URL に埋め込む方法を示しています。

    https://example.com/search.aspx?query=terms&param=mysearchword
    

Note

フェデレーション検索では、Web サービスへの要求の送信 POST はサポートされていません。

 

URL の構築の詳細については、「 Windows フェデレーション検索での OpenSearch 記述ファイルの作成」の「URL テンプレート パラメーター」を参照してください。

サポートされているクエリ構文

Windows 7 では、特定のクエリ構文は必要ありません。 OpenSearch プロバイダーは、ユーザーが Windows エクスプローラーの入力ボックスに入力した用語を受け入れ、URL にエンコードします。 これは、「 Windows フェデレーション検索での OpenSearch 記述ファイルの作成」の「URL テンプレート パラメーター」で説明されている URL テンプレートに従って行われます。

ユーザーは、個別の用語が暗黙的に AND として一緒に扱われることを期待しています。 たとえば、"Microsoft Windows" のクエリは、"Windows" と "Microsoft" の両方を含む結果のみを返す必要があります。

サポートされている認証プロトコル

Windows フェデレーション検索では、Windows ベースの認証がサポートされており、次のプロトコルを使用して Web サービスに資格情報を提供できます。

  • NTLM。
  • Kerberos。
  • Basic (https 経由のみ)。
  • 追加のクエリ容量を提供する、Windows にインストールされているその他のセキュリティ サポート プロバイダー (SP)。 他の SSP の追加の可能性を把握するには、 SSP インターフェイス SDK のドキュメントを参照してください。

クエリの送信と RSS または Atom での検索結果の返し

OpenSearch プロバイダーは、XML 要素の値を Windows アプリケーションで使用できる Windows シェル システム プロパティにマッピングする役割を担います。 ただし、標準の RSS または Atom 要素の既定のマッピングに限定されるものではなく、各プロパティの Windows 名前空間にカスタム XML 要素を含めることができます。 たとえば、 item 要素内に独自のカスタム XML 要素を追加して、Windows にメタデータを追加できます。 iTunes などの他の XML 名前空間の要素をマップすることもできます

RSS フィード出力の例

次の RSS フィード出力の例では、1 つの項目が返されます。

<rss version="2.0" xmlns:media="https://search.yahoo.com/mrss/" xmlns:example="https://example.com/namespace">
   <channel>
      <title>Search Results</title>
      <item>
         <title>An example result</title>
         <link>https://example.com/pictures.aspx?id=01</link>
         <description>This is a test of the emergency search results system. If this were a real emergency result, you'd be reading something more useful.</description>
         <pubDate>Wed, 1 Oct 2008 23:12:00 GMT</pubDate>
         <media:content url="https://example.com/pictures/picture01.jpg" fileSize="212889" type="image/jpeg" height="768" width="1024"/>
         <media:thumbnail url="https://example.com/thumbnails/picture01.jpg" height="120" width="160"/>
         <example:dateTaken>Mon, 22 Sep 2008 23:12:00 GMT</example:dateTaken>
      </item>
   </channel>
</rss>

プロパティ マッピングの詳細については、「Windows フェデレーション検索での OpenSearch 記述ファイルの作成」の「WIndows フェデレーション検索の拡張要素」および「カスタム プロパティ マッピング」セクションを参照してください。

Windows シェル プロパティへの自動マッピング

RSS フィードの項目内には、Windows シェル システム プロパティに自動的にマップされる他の XML 要素を含めることができます。 これを行うには、Windows Shell プロパティの後にという名前の要素を含め、Windows Shell システム名前空間のプレフィックスを付けます。 次の例は、名前空間宣言 win=" http://schemas.microsoft.com/windows/2008/propertynamespace" と、プロパティ マッピング win:System.Contact.PrimaryEmailAddressに要素を含める方法を示しています。

<rss version="2.0" xmlns:example="https://example.com/schema/2009" xmlns:win="http://schemas.microsoft.com/windows/2008/propertynamespace">
...
   <item>
      <title>Someone</title>
      <win:System.Contact.PrimaryEmailAddress>someone@example.com
   </win:System.Contact.PrimaryEmailAddress>
   </item>

ここで使用する名前空間プレフィックス ("win") は提案です。任意のプレフィックスを使用できます。 ただし、次の例に示すように、正確な Windows シェル プロパティ名を使用し、正確な Uniform Resource Identifier (URI) を含める必要があります。

http://schemas.microsoft.com/windows/2008/propertynamespace

Windows シェル システムのプロパティについて

Windows では、 システム プロパティ の完全な一覧と、各プロパティに必要な値の型の形式が定義されています。 たとえば、 System.FileExtension Window Shell プロパティのドキュメントでは、値に "docx" ではなく、先頭のドット (".docx" が含まれている必要があることを指定しています。

日時値

次の例に示すように、推奨される日付と時刻の形式は ISO-8601 です。

2008-01-16T 19:20:30:.45+01:00

.NET 開発者は、 で DateTime クラス ToString("R") を使用して正しい形式を出力する必要があります。

プロパティ マッピングの詳細については、「 Windows フェデレーション検索での OpenSearch 記述ファイルの作成」の「Windows フェデレーション検索の拡張要素」を参照してください。

ファイルの種類に項目をWindows マップする方法について

Windows エクスプローラー UI 内で検索すると、RSS 項目がリモートに保存されているファイルを指している場合に、ユーザーは結果をファイルとして扱うことができます。 ユーザーはデスクトップに項目をドラッグ アンド ドロップでき、Windows エクスプローラー UI に正しいアイコンが表示され、適切なショートカット メニューが表示されます。 RSS アイテムがリモートに保存されたファイルを指していない場合、ファイルはリンクとして扱われ、ユーザーはショートカットの作成やブラウザーで開くなどのアクションを実行できます。

次のフローチャートは、Windows がアイテムのファイルの種類を決定する方法を示しています。

アイテムから Web リンクの種類のアイテムまたはファイルの種類として扱う決定へのパスを示すフローチャート

OpenSearch プロバイダーは、次の手順を実行して、アイテムをファイルの種類にマップします。

  • アイテムをファイルまたは Web リンクとして扱う必要があるかどうかを特定します。
  • 使用する正しいファイル名拡張子を特定します。

たとえば、アイテムにファイル システム パス (など file:///\\server\share\etc\item.ext) を使用するリンク URL がある場合、 OpenSearch プロバイダーはリンクをファイルとして扱い、パスで使用されるファイル名拡張子 (この例では .ext) によって型を決定します。

アイテムが標準の RSS エンクロージャまたは MediaRSS media:content 要素を使用している場合、 OpenSearch プロバイダーはアイテムがファイルであると見なし、ファイル名拡張子を次のように識別します。

  • System.FileExtension Windows Shell プロパティがアイテムにマップされている場合、プロバイダーはそのファイル名拡張子を使用します。
  • System.FileExtension Windows Shell プロパティがマップされていない場合、プロバイダーはエンクロージャまたはコンテンツ要素で指定された Type 属性を使用します。 この要素には、 などの"image/jpeg"文字列がMIMEType含まれている必要があります。 MIMETypeがクライアント コンピューターに登録されているファイル名拡張子に関連付けられている場合、アイテムはその種類のファイルと見なされます。 MIMETypeがクライアント コンピューターに登録されているファイル名拡張子に関連付けられていない場合、アイテムは Web リンクの種類として扱われます。 OpenSearch プロバイダーは、Url 属性を解析してファイル名拡張子を見つけようとしません。
  • MIMETypeがクライアント コンピューターに登録されているファイル名拡張子に関連付けられている場合、プロバイダーは、ファイル名拡張子が既知の Web ファイルの種類 (.htm、.html、.asp、.aspx、.php、.swf、.stm) であるかどうかを判断します。 その場合、ファイルの種類は Web リンクの種類と見なされます。それ以外の場合は、ファイルの種類と見なされます。 たとえば、 が.htmファイル名拡張子に関連付けられている場合 MIMEType "text/html" 、そのアイテムは.htmファイルの種類ではなく Web リンクと見なされます。

データ ストアを有効にするための潜在的な障壁を回避する

一部のデータ ストアでは 、OpenSearch 互換 Web サービスは提供されませんが、Windows フェデレーション検索に接続することはできます。 このようなデータ ストアには、次のものが含まれます。

  • Windows 7 フェデレーション検索でサポートされていない認証方法を持つリモート インデックス。

    たとえば、フォーム ベースの認証やその他のカスタム認証方法があります。

  • 価値の高いパブリック ストアにパブリック Web API がある場合、誰でも OpenSearch 互換の別の Web サービスを作成し、それらの API をバックグラウンドで呼び出すことができます。

    例としては、議会図書館、医学研究データベースなどがあります。

  • 独自のエンタープライズ データ ストアまたはインデックス、および従来のコンテンツ管理ストア。フロントエンドを実装できない可能性があります。

ただし、データ ストアを有効にするための障壁を回避できる代替手段があります。 これらの代替手段の一部を次に示します。

既存のデータ ソースの Web サービスを変更できない場合、または Web サービスがカスタム API を提供する場合に、中間者 Web サービスを作成するには:

  1. Windows 7 クエリを受け入れられる中間者 Web サービスを作成します。
  2. データ ソースに接続し、クエリ結果を取得します。
  3. 結果を RSS または Atom 形式で再フォーマットします。
  4. Windows 7 クライアントに結果を返します。
  5. エンタープライズ データ サービスと多くのインターネット データ サービスの場合、ユーザーのアクセス許可に基づいて結果トリミングを実行するには、Web サービスの代わりにユーザーの資格情報を渡す必要がある場合があることに注意してください。

パブリック データ ストアを有効にできないときに既存の検索エンジンを使用するには:

  1. 既に RSS で OpenSearch をサポートしているパブリック検索エンジンを使用します。 これを行うには、結果を特定のドメインの結果のみに制限する URL テンプレートを持つ .osdx ファイルをユーザーに提供します。

  2. Live.com に対するクエリを使用して Windows のヘルプ コンテンツのみを検索する場合は、 OpenSearch の説明の次の例を参照してください。

    <?xml version="1.0" encoding="UTF-8"?>
    <OpenSearchDescription xmlns="https://a9.com/-/spec/opensearch/1.1/">
      <ShortName>Windows Help</ShortName>
      <Description>Search Windows Help using the live.com search engine</Description>
      <Language></Language>
      <Url type="text/html" template="https://windowshelp.microsoft.com/windows/search.aspx?=&amp;qu={searchTerms}"/>
      <Url type="application/rss+xml" template="https://api.search.live.com/rss.aspx?source=web&amp;query={searchTerms} site:windowshelp.microsoft.com&amp;web.count=50"/>
    </OpenSearchDescription>
    

独自のエンタープライズ データ ストアまたはインデックスを有効にできない場合に OpenSearch をサポートする既存のインデックス作成サーバーを使用するには:

  1. SharePoint Search Server などのコンテンツのインデックスを作成するには、 OpenSearch をサポートする既存のインデックス作成サーバーを選択します。
  2. URL テンプレート内で KeyWord 構文を使用して、SharePoint インデックスの結果をサーバーからの結果のみに制限する .osdx ファイルを作成します。

サーバー側のみのソリューションが機能しない場合にクライアント側データ ストアを作成するには:

  1. Windows OpenSearch プロバイダーと外部データ ソースの間に配置されるクライアント側 の OpenSearch データ ソースを作成します。
  2. Windows SDK の IOpenSearchSource インターフェイス API を使用して、適切に構成された .searchconnector-ms ファイルを作成します。これにより、Windows エクスプローラーはクエリ パラメーターを使用して実装を呼び出すことができます。 実装では、RSS または Atom 形式で書式設定された結果を返すことができます。 これにより、実装でカスタム認証 UI を提供し、独自の API を使用してデータ ソースに接続できるようになります。

Note

.osdx ファイルを開くと、%userprofile%/searches ディレクトリに .searchconnector-ms ファイル (検索コネクタ) が作成され、%userprofile%/links ディレクトリにリンクが配置されます。

 

その他のリソース

Windows 7 以降の OpenSearch テクノロジを使用してリモート データ ストアに検索フェデレーションを実装する方法の詳細については、「 Windows でのフェデレーション検索」の「その他のリソース」を参照してください。

Windows でのフェデレーション検索

Windows でのフェデレーション検索を使用したはじめに

Windows フェデレーション検索での Web サービスの接続

Windows フェデレーション検索での OpenSearch 記述ファイルの作成

Windows フェデレーション検索のベスト プラクティスに従う

Windows フェデレーション検索での検索コネクタの展開