SharePoint Server 2007 コネクタを構築するためのアーキテクチャ ガイダンス
最終更新日: 2010年4月21日
適用対象: SharePoint Server 2010
この記事の内容
フェデレーション コネクタの要件
フェデレーション コネクタのサンプルのシナリオ
フェデレーション コネクタ作成の指針
Microsoft SharePoint Server 2010 Search では、フェデレーション場所を使用して、検索サーバーのクローラーでインデックスが作成されていないコンテンツ リポジトリのアイテムを組み込むことができます。
SharePoint エンタープライズ検索 では、以下の種類のフェデレーション場所をサポートしています。
**このサーバーの検索インデックス **SharePoint Server 2010 のローカル検索サーバーの検索結果です。
FAST インデックス FAST Search Server 2010 for SharePoint の検索結果です。
**OpenSearch 1.0 または 1.1 標準をサポートするサイト **任意のリモート検索サーバーの結果ページの RSS フィード、または OpenSearch 標準 (OpenSearch.org (英語) を参照) をサポートし、構造化された XML 形式 (RSS 結果、Atom 結果など) で検索結果を返す検索可能な RSS フィード。
特定のシナリオでは、コンテンツ リポジトリの他の種類のフェデレーション検索結果を含める一方で、そのコンテンツが SharePoint Server Search でクロールされないようにしたい場合があります。シナリオの例には次のリポジトリがあります。
テクノロジ、リソース、またはコンテンツ サイズが原因でクロールできないリポジトリ。
問題なく機能する検索エンジンが既に存在するリポジトリ。
セキュリティで保護されており、検索クエリからのみアクセスできるリポジトリ。
これらのリポジトリのシナリオにフェデレーション結果を含めるには、フェデレーション コネクタを作成する必要があります。このコネクタは、リポジトリの検索エンジンの結果を公開するためのインターフェイスをリポジトリに提供するアプリケーションです。OpenSearch のフェデレーション場所によって公開される場合と同じ方法で、結果を公開する必要があります。
リポジトリのコンテンツを直接クロールするか、またはリポジトリのコンテンツをフェデレーション場所として追加するかを決定するには、コンテンツを直接クロールする場合の次の利点について検討してください。
関連性で結果を並べ替えることができます。
コンテンツ インデックスの更新頻度を制御できます。
クロールされるメタデータを変更できます。
クロールされるコンテンツに対して単一のバックアップ操作を実行できます。
このトピックでは、SharePoint エンタープライズ検索 用のフェデレーション コネクタを作成するための要件を説明し、アーキテクチャに関する指針を示します。
フェデレーション コネクタの要件
ここでは、基本的なフェデレーション コネクタの最小要件を説明します。最初に、SharePoint エンタープライズ検索 で OpenSearch 場所に接続し、結果を取得する方法を確認します。次に、フェデレーション コネクタで同様の機能を実装する方法を説明します。
OpenSearch 場所の検索のフェデレーション
SharePoint エンタープライズ検索 のフェデレーション コネクタを作成する前に、検索サーバーから OpenSearch フェデレーション場所へのクエリの方法と、返される結果の処理方法を理解する必要があります。
場所定義情報のクエリ テンプレートに指定された URL を使用して、検索サーバーからフェデレーション場所に GET 要求が送信されます。パラメータ化された URL は、その場所の Web インターフェイスを参照し、検索エンジンに必要な検索クエリと検索パラメータを含みます。
Web インターフェイスは構造化された XML 形式 (RSS (英語)、Atom (英語) など) で検索結果を含む応答を返します。
注意
SharePoint エンタープライズ検索 は、HTML 形式または XHTML 形式で返される結果をサポートしていません。
SharePoint エンタープライズ検索 は、OpenSearch フェデレーション場所に対して指定されている、検索結果の表示用メタデータに基づいて結果を書式設定し、検索結果 UI に表示します。
これらの手順および OpenSearch に対する SharePoint エンタープライズ検索 の拡張機能に基づいて、OpenSearch フェデレーション場所は少なくとも以下のことを実行できる必要があります。
検索エンジンに URL としてクエリを送信する。
XML として結果を返す。
フェデレーション コネクタに必要な機能
既に説明した OpenSearch 場所の要件に基づいて、フェデレーション コネクタは以下のことを実行できる必要があります。
パラメータ化された URL として送信された検索サーバーのクエリ要求に Web ページまたは Web サービスを提供する。
要求の URL パラメータから検索クエリを取得する。
適切な形式でリポジトリの検索エンジンにクエリを送信する。
リポジトリの検索結果を構造化された XML 形式に変換する。
検索サーバーへの応答で検索結果の XML を返す。
フェデレーション コネクタのサンプルのシナリオ
特定の検索シナリオでは、フェデレーション コネクタが必要です。ここでは、関連するいくつかのサンプル シナリオについて説明し、それらのシナリオのサンプル フェデレーション コネクタ ソリューションの実装について詳細を示します。
注意
次の実装の詳細は、情報提供を目的としており、使用可能な多くのソリューションの中の一部のみを示しています。
シナリオ 1 : SQL Server データベースに接続する
シナリオの背景 : データベースへの接続には Windows 認証が必要です。
使用可能なソリューション : 以下の処理を実行する軽量 ASPX ページを含む SharePoint サイト内の Web アプリケーション。
要求 URL に渡す検索用語を使用して SQL クエリを作成します。
クエリを送信したユーザーとしてデータベースに接続します。
SQL クエリを実行します。
レコードを返す場合は、レコードを XML として書式設定し、検索サーバーへの ASPX ページの応答で返します。
注意
このシナリオでは、NTLM 認証はデータベースと SharePoint サイトが同一のサーバーにある場合にのみ機能します。データベースがリモート サーバーにある場合は、Kerberos 認証を使用する必要があります。
シナリオ 2 : HTML 形式で結果を返す外部検索サイトに接続する
シナリオの背景 : サイトは匿名アクセスを使用するように構成されています。
使用可能なソリューション : SharePoint サイトのコンテキスト外の Web アプリケーションを使用します。このサイトには、以下の処理を実行する軽量 ASPX ページが含まれています。
最初の要求 URL で渡される検索用語を使用して、サイトへの検索要求を送信します。
外部検索サイトから受信した HTML 応答での結果を RSS 形式に変換します。
検索サーバーに対する応答で RSS XML を返します。
このシナリオでは、フェデレーション コネクタの Web アプリケーションはリモート サーバー上にある場合があります。ただし、より単純なソリューションは、SharePoint サイト用の _layouts フォルダー内に Web アプリケーションを作成することです。
このフェデレーション コネクタ ソリューションのバリエーションとして、case ステートメント内に複数のサイトの詳細を指定するように ASPX ページを変更して、複数の外部検索サイトに対するサポートを追加できます。さらに、これらの場所に対して指定するクエリ テンプレートに、case ステートメント内のどのサイトがフェデレーション クエリを受信するかを指定するカスタム パラメータを追加できます。もう 1 つのバリエーションとしては、複数の外部検索プロバイダの結果を組み合わせて、関連性に基づいて結果を並べるロジックを組み込みます。
シナリオ 3 : オブジェクト モデルを使用して検索結果を公開するバックエンド サーバー アプリケーションに接続する
シナリオの背景 : バックエンド サーバー アプリケーションがフォーム認証を使用するように構成されており、すべてのクエリに対して同じユーザー名とパスワードが必要です。
使用可能なソリューション : Corporate フォーム認証を使用するようにフェデレーション場所を構成します。この認証では、場所定義で必要なユーザー名およびパスワードを指定します。
フェデレーション コネクタはリモート サーバー上で実行される Web アプリケーションであり、以下の処理を実行する ASPX ページを含みます。
要求と共に渡される認証済みユーザーの資格情報を取得します。
要求 URL で渡される検索用語のクエリをバックエンド サーバー アプリケーションに対して実行するオブジェクト モデル メソッドを呼び出します。
結果の形式を XML に設定し、検索サーバーに対する ASPX ページの応答でそれらを返します。
シナリオ 4 : Web サービスを使用して検索結果を公開するバックエンド サーバー アプリケーションに接続する
シナリオの背景 : Web サービスで、送信される各クエリに対してユーザーの資格情報が必要であり、認証モードは Windows NTLM です。
使用可能なソリューション : ユーザー NTLM 認証用にフェデレーション場所を構成します。
フェデレーション コネクタはリモート サーバー上で実行される Web アプリケーションであり、以下の処理を実行する ASPX ページを含みます。
要求と共に渡される認証済みユーザーの資格情報を取得します。
シングル サインオン (SSO) サービスに接続し、ユーザーの資格情報を取得します。
Web サービス メソッドを呼び出し、要求 URL で渡される検索用語のクエリをバックエンド サーバー アプリケーションに対して実行します (このとき、要求の前の手順で取得した資格情報を渡します)。
結果の形式を XML に設定し、検索サーバーに対する ASPX ページの応答でそれらを返します。
フェデレーション コネクタ作成の指針
ここでは、以下のことを決定する際の指針と推奨事項を示します。
作成するフェデレーション コネクタの範囲。
検索結果の表示の書式設定およびカスタマイズ方法。
フェデレーション コネクタ作成の範囲指定
フェデレーション コネクタの作成および実装を計画している場合は、フェデレーション場所のコンテンツ リポジトリに関する次の質問の回答を検討してください。
リポジトリがサポートするのはどの認証モードですか。
使用する認証資格情報は、クエリを送信するユーザーに基づいている必要がありますか。または、送信するユーザーとは無関係に特定のフェデレーション場所に対するすべてのクエリで同じ資格情報を使用する必要がありますか。
リポジトリの物理的な場所はどこですか。SharePoint サイトと同じサーバー上ですか、またはリモート サーバー上ですか。
リポジトリの検索機能にはどのようにアクセスしますか。たとえば、以下のいずれかの方法を使用してアクセスしますか。
Web サービス
オブジェクト モデル
ASPX ページ
HTML コンテンツ
フェデレーション場所の結果がリポジトリの任意のカスタム フィールドを含んでいる必要がありますか。
どのような結果形式のカスタマイズ (XSLT 変換) が必要ですか。
検索結果を表示する
このセクションでは、検索結果に必要な形式の詳細と、検索結果の表示をカスタマイズする方法について説明します。
検索結果 XML を生成する
結果を含む応答を検索サーバーに返す前に、結果を構造化された XML 形式に変換する必要があります。単純なカスタマイズ シナリオでは、RSS 形式への変換をお勧めします。理由は、XSL の既定の書式設定の変更や、フェデレーション場所の検索結果表示メタデータの [プロパティ] フィールドの変更が、不要またはほとんど不要なためです。
カスタム プロパティを返す
フェデレーション コネクタによって返される検索結果 XML にカスタム プロパティが含まれている場合、検索結果 UI にそれらのプロパティを表示するには、次のフィールドについてフェデレーション場所の検索結果表示メタデータの既定書式を上書きする必要があります。
プロパティ。メタデータのリストにカスタム プロパティの名前を追加します。このリストにはカスタム プロパティを含む必要があります。含まない場合は、XSL でこのプロパティを使用できません。カスタム プロパティは管理対象のプロパティである必要があります。
注意
これは、SharePoint のフェデレーション場所のみに該当します。OpenSearch のフェデレーション場所では、XSL のすべてのプロパティを使用できます。
XSL。カスタム プロパティを表示する XSL を更新します。
その他の結果リンクを組み込む
[その他の結果] リンクは、フェデレーション検索場所の結果を表示する HTML ページの URL です。フェデレーション場所の検索結果を表示するときにこのリンクを含めるには、この HTML ページにその場所を組み込むか、または HTML ページの検索結果を提供する独自のフェデレーション コネクタを作成します。
関連項目
概念
コード サンプル: フェデレーション検索 SQL Server コネクタ