SharePoint Server 2010 Search で外部コンテンツ タイプを使用するように構成する (パート 1/2)

概要:  Microsoft Business Connectivity Services (BCS) では、外部データを Microsoft SharePoint Server 2010 Search 機能の結果として容易に取り込むことができます。ここでは、SharePoint Server Search インデックスで外部コンテンツ タイプを使用するように構成する方法と、SharePoint Server Search の結果を構成するオプションの構成方法について説明します。

最終更新日: 2011年2月17日

適用対象: Business Connectivity Services | Office 2010 | Open XML | SharePoint Designer 2010 | SharePoint Foundation 2010 | SharePoint Online | SharePoint Server 2010 | Visual Studio

この記事の内容
SharePoint Server 2010 Search で外部コンテンツ タイプを使用するように構成する方法の概要
例: SharePoint Designer 2010 によって外部データを検索する
検索の結果をカスタマイズする
マスターと詳細のリレーションシップの関連付けを使用する
その他の技術情報
著者について

適用先:  Microsoft SharePoint Server 2010

提供元:  Bob McClellan

目次

  • SharePoint Server 2010 Search で外部コンテンツ タイプを使用するように構成する方法の概要

  • 例: SharePoint Designer 2010 によって外部データを検索する

  • 検索の結果をカスタマイズする

  • マスターと詳細のリレーションシップの関連付けを使用する

  • その他の技術情報

  • 著者について

これは、SharePoint Server Search で外部コンテンツ タイプを使用するように構成する方法について、2 回シリーズで説明する記事のパート 1 です。

SharePoint Server 2010 Search で外部コンテンツ タイプを使用するように構成する方法の概要

Microsoft Business Connectivity Services (BCS) では、SharePoint ソリューションを外部データ ソースに接続し、その外部データに基づいて、外部コンテンツ タイプを定義できます。SharePoint 2010 Search サービスは、外部コンテンツ タイプを使用して外部データのインデックスを作成することにより、有意義な検索結果を表示できます。Business Connectivity Services (旧称ビジネス データ カタログ) には、Microsoft SharePoint Designer 2010 のサポートなどの機能強化が追加されています。

この記事では、SharePoint Designer 2010 によって外部コンテンツ タイプを定義する方法と、外部データを含む SharePoint Server Search クロールを設定する方法について説明します。このアプローチでは、増分クロールを使用して、大量のデータのクロールにかかる時間を短縮します。ここでは、このアプローチについて、SharePoint Designer、SharePoint サーバーの全体管理、および XML コード例を使用して説明します。

説明を始める前に、次の条件を満たしていることを確認する必要があります。

  • SharePoint 2010 サーバーの全体管理にアクセスできること。SharePoint 2010 サーバーの全体管理には、Search サービスや Business Data Connectivity (BDC) service が含まれています。

  • SharePoint Designer にアクセスできること。

  • サイト コレクションを持つ SharePoint 2010 Web アプリケーションがあること。詳細については、「サイト コレクションを作成する (SharePoint Server 2010)」を参照してください。Sharepoint - 80 を使用できることを確認します。

  • Microsoft SQL Server にアクセスできること。SharePoint Server 2010 を実行するコンピューターで使用する SQL Server のインスタンスと同じインスタンスを使用できることを確認します。

  • SQL Server のサンプル データベースを使用できること。たとえば、この例では AdventureWorks を使用します。このサンプル データベースのインストールについては、「AdventureWorks 2008 R2 (英語)」を参照してください。

SQL クエリとビューについて理解していると、これらの例はより有意義なものとなります。また、XML の経験も役立ちます。

例: SharePoint Designer 2010 によって外部データを検索する

このセクションでは、SharePoint Designer によって外部データへの接続を設定し、外部コンテンツ タイプを定義する方法について説明します。さらに、Search サービスを構成してそのデータのインデックスを作成し、ユーザーに結果を表示する方法についても説明します。一般的な手順は次のとおりです。

  • Web アプリケーションが適切なサービスに接続されていることを確認します。

  • プロファイル ページ サイトと SharePoint Server Search サイトを作成します。

  • Business Data Connectivity Service を構成します。

  • 外部コンテンツ タイプを作成します。

  • SharePoint Search Service を構成し、外部データをクロールしてインデックスに追加します。

  • SharePoint Server Search をテストします。

主に、次の 4 つの領域を使用しながら、特定の手順の操作を行います。

  • SharePoint 2010 サーバーの全体管理の BDC

  • SharePoint 2010 サーバーの全体管理の検索

  • SharePoint Designer

  • 作成した SharePoint Server Search サイト

どの領域で操作する場合も、操作の開始後は、その領域をバックグラウンドで開いたままにしておきます。たとえば、SharePoint 2010 サーバーの全体管理で [Business Data Connectivity] ページを開いた後は、新しいウィンドウを開いて Search サービスを構成します。

最初の手順は、必要なサービスに Web アプリケーションが接続されているかどうかを確認することです。必要なサービスが接続されていない場合は、それらを接続する必要があります。

Web アプリケーションの接続を確認するには

  1. SharePoint 2010 サーバーの全体管理を開始します。

  2. [アプリケーション構成の管理] の見出しで、[Web アプリケーションの管理] をクリックします。

  3. 使用する Web アプリケーションを選択します (たとえば、 Sharepoint - 80)。

  4. リボンで [サービス接続] をクリックします。

    図 1. Web アプリケーション リボン

    リボンの Web アプリケーション

  5. Business Data Connectivity (BDC) service と、Search Service アプリケーションなどの Search サービスが選択されていることを確認します。Web サービスで使用する Search サービスを記録して、正しい Search サービスを構成するようにします (たとえば、FAST Query SSA を使用している場合があります)。これらのどちらか、またはどちらとも選択されていない場合は、それらを選択し、[OK] をクリックします。これらを選択できない場合は、ページ上部のボックスの一覧で [既定] から [ユーザー設定] に変更します (図 2 参照)。

    図 2. Web アプリケーションの接続のダイアログ ボックス

    Web アプリケーション接続用のダイアログ ボックス

次に、BDC Service を構成する必要があります。権限と、プロファイル ページをホストするサイトを設定する必要があります。プロファイル ページには外部データ レコードの詳細情報が表示されます。Search サービスは、検索結果を適切なプロファイル ページにリンクします。プロファイル ページを設定していないと、SharePoint Server Search の結果には壊れたリンクが含まれます。各プロファイル ページには、関連付けられている外部コンテンツ タイプのデータが表示されます。したがって、各タイプについて個別のページが必要となります。これらのページは、どのサイトでもホストできます。ただし、通常は、別のサイトを作成するか、これらのページ専用のサイト コレクションを作成して一般的なサイト コンテンツとは別に保管することをお勧めします。この記事では、既存のサイト コレクション内に専用のサイトを作成する方法について説明します。

プロファイル ページのサイトを作成するには

  1. Internet Explorer で、使用するサイト コレクションを開きます。

  2. [サイトの操作] ボックスの一覧の [新しいサイト] をクリックします。

  3. [空のサイト] テンプレートを選択します。

  4. 右側のウィンドウで、[その他のオプション] をクリックします。

  5. [タイトル] ボックスに、「検索結果の詳細」と入力します。

  6. [URL 名] ボックスに、「ProfilePages」と入力します。

  7. [ナビゲーション] セクションで、[このサイトを親サイトのトップ リンク バーに表示する] に対して [いいえ] をクリックします。

  8. [作成] をクリックします。

表示される URL は、次の手順で使用します。プロファイル ページのサイトの URL が http://server1/ProfilePages/default.aspx の場合、プロファイル ページの場所として http://server1/ProfilePages をホスト URL として指定します。

BDC Service を構成するには

  1. SharePoint 2010 サーバーの全体管理を開始します。

  2. [アプリケーション構成の管理] で、[サービス アプリケーションの管理] をクリックします。

  3. [名前] 列で、[Business Data Connectivity Service] をクリックします (図 3 参照)。

    図 3. [サービス アプリケーションの管理] ボックスの一覧

    [サービス アプリケーションの管理] リスト

  4. [編集] をクリックします。

  5. リボンの [プロファイル ページ] グループで [構成] をクリックします。

  6. [ホスト SharePoint サイトの URL] ボックスに、プロファイル ページ用として直前に作成したサイトの完全 URL を入力します (図 4 参照)。

    図 4. プロファイル ページのホストの構成

    プロファイル ページのホストの構成

  7. [OK] をクリックします。

  8. リボンの [権限] グループで [Metadata Store の権限の設定] をクリックします。

  9. 使用するアカウントがダイアログ ボックスに表示されない場合は、[追加] の横のテキスト ボックスにアカウント名を入力します。

  10. [追加] をクリックします。

  11. 下部のボックスの一覧で、[編集] ボックス、[実行] ボックス、[クライアントで選択可能] ボックス、および [アクセス権の設定] ボックスを選択します。

  12. [BDC Metadata Store 内のすべての BDC モデル、外部システム、および外部コンテンツ タイプにアクセス許可を伝達する (これにより、既存の権限が上書きされます)] ボックスを選択します。

  13. [OK] をクリックします。

次に、テスト用の簡単な検索サイトを作成する必要があります。

検索サイトを作成するには

  1. Internet Explorer で、目的のサイト コレクションを開きます。

    元のサイト コレクションにナビゲートしていること、およびプロファイル ページ用に作成したサイトが表示されていないことを確認します。

  2. [サイトの操作] ボックスの一覧の [新しいサイト] をクリックします。

  3. [基本検索センター] テンプレートを選択します。

  4. 右側のウィンドウで、[タイトル] に「BCS Search」、[URL 名] に「BCSSearch」と入力します。

  5. [作成] をクリックします。

次に、AdventureWorks データベースの product および description ビューの外部コンテンツ タイプを作成する必要があります。この外部コンテンツ タイプは、サイト コレクションのルート、またはそのサイト コレクション内の任意のサイトに作成できます。これには以前に作成したサイトも含まれます。外部コンテンツ タイプを SQL Server に外部データ ソースとして接続します。次に、2 つの基本操作を定義して、外部コンテンツ タイプを Search サービスによって使用できないようにします。Read List 操作は、外部コンテンツ タイプから全レコードのリストを取得します。項目の読み取り操作は、外部コンテンツ タイプから特定のレコードを取得します。どちらの操作でも、各レコードを一意に識別するフィールドを指定する必要があります。

外部コンテンツ タイプを作成するには

  1. 作成した Business Connectivity Services 検索サイトの [サイトの操作] ボックスの一覧で、[SharePoint Designer で編集] をクリックします。

    この時点で、前述の 4 つのウィンドウのうち 3 つが開いている必要があります。開いていないのは Search サービスのみです。

  2. [ナビゲーション] ウィンドウで、[外部コンテンツ タイプ] をクリックします。

  3. リボンの [新規作成] グループで、[外部コンテンツ タイプ] をクリックします (図 5 参照)。

    図 5. 外部コンテンツ タイプの作成

    外部コンテンツ タイプの作成

  4. [外部コンテンツ タイプの情報] グループで、[名前] の横の [新しい外部コンテンツ タイプ] をクリックします。「Products」と入力します (図 6 参照)。

    図 6. 外部コンテンツ タイプの概要ビュー

    外部コンテンツ タイプの概要ビュー

  5. [外部システム] の横の [ここをクリックして、外部データソースの検出と操作の定義を行います。] をクリックし、[接続の追加] をクリックします。

  6. [外部データ ソース タイプの選択] ダイアログ ボックスで、ボックスの一覧の [SQL Server] をクリックします。

  7. [OK] をクリックします。

  8. [SQL Server 接続] ダイアログ ボックスで、[データベース サーバー] ボックスに、「localhost」と入力します (図 7 参照)。

    図 7. [SQL Server 接続] ダイアログ ボックス

    [SQL Server 接続] ダイアログ ボックス

  9. [データベース名] ボックスに、「AdventureWorks」と入力します。

  10. [名前 (省略可能)] ボックスに、「AWProducts」と入力します。

  11. [OK] をクリックします。この接続では、データベースへの接続に Search サービス アカウントを使用します。製品の構成によっては、偽装 ID を使用して、データベースへのアクセスをこのアカウントとは切り離して制御した方が適切な場合もあります。

  12. [AWProducts] を展開し、[ビュー] を展開します。

  13. [vProductAndDescription] を右クリックしてポップアップ メニューを開き、[新しい項目の読み取り操作] をクリックします (図 8 参照)。

    図 8. 外部コンテンツ タイプのデータ ソース エクスプローラー

    外部コンテンツ タイプのデータ ソース エクスプローラー

  14. [項目の読み取り] ダイアログ ボックス下部の [次へ] をクリックします。

  15. [入力パラメーター] ページの [データ ソース要素] ウィンドウで [ProductID] をクリックします。

    図 9. [項目の読み取り] ダイアログ ボックス

    [項目の読み取り] ダイアログ ボックス

  16. [プロパティ] ウィンドウで、[識別子へのマップ] ボックスを選択し、[次へ] をクリックします。

  17. [戻り値パラメーター] ページの [データ ソース要素] ウィンドウで [ProductID] をクリックします。

  18. [プロパティ] ウィンドウで、[識別子へのマップ] ボックスを選択します。

  19. [完了] をクリックします。

  20. ポップアップ メニューを開くには、[ProductAndDescription] を右クリックし、[新しいリストの読み取り操作] をクリックします。

  21. [リストの読み取り] ダイアログ ボックス下部の [次へ] をクリックします。

  22. [次へ] をクリックします。

  23. [戻り値パラメーター] ページの [データ ソース要素] ウィンドウで [ProductID] をクリックします。

  24. [プロパティ] ウィンドウで、[識別子へのマップ] ボックスを選択します。

  25. [完了] をクリックします。

  26. リボンで [概要ビュー] をクリックします。

  27. [フィールド] グループで、ボックスの一覧の [名前] をクリックします。

  28. リボンで [タイトルとして​​設定] をクリックします (図 10 参照)。

    図 10. 完了した外部コンテンツ タイプ

    完了済みの外部コンテンツ タイプ

  29. [製品] タブを右クリックし、ポップアップ メニューの [保存] をクリックします。

  30. リボンで [プロファイル ページの作成] をクリックします。

外部コンテンツ タイプを作成する手順の最後で、タイトルを設定します。このタイトルは、検索結果にリンクとして表示されます。タイトルを指定していない場合は、検索結果に暗号のようなテキストがタイトルとして表示され、通常、エンド ユーザーはそのテキストが何であるか判読できません。

次に、クロールとインデックスの作成時に、この外部コンテンツ タイプを使用するように Search サービスを構成する必要があります。Search サービスは、検索する必要があるコンテンツの特定と制御に、コンテンツ ソースを使用します。また、クロール操作で使用するアカウントを設定する必要もあります。それは、BDC Service の権限を設定するときに使用したアカウントと同じで、AdventureWorks データベースに対する読み取りアクセスを持っている必要があります。

運用構成では、Search サービスの権限を制御する専用のアカウントを作成および使用する必要があります。

SharePoint Search Service を構成するには

  1. SharePoint 2010 サーバーの全体管理を開始します。

    これを新しいウィンドウとして開くと、4 つ目のメイン領域専用のウィンドウを開くことになります。

  2. [アプリケーションの管理] で、[サービス アプリケーションの管理] をクリックします。

  3. [名前] 列で、[Search Service アプリケーション ] をクリックします (または、サイト コレクションに接続されている Search サービスをクリックします)。

  4. クロールで使用するアカウントを変更するには、[既定のコンテンツ アクセス アカウント] の右側のリンクをクリックします。このアカウントに、BDC Service の権限を設定するときに使用したアカウントと同じアカウントを設定します。

  5. ナビゲーション ウィンドウで、[クロール] の [コンテンツ ソース] をクリックします。

  6. [新しいコンテンツ ソース] をクリックします (図 11 参照)。

    図 11. Search サービスのコンテンツ ソースの構成

    コンテンツ ソースの構成

  7. [名前] ボックスに、「AWProductSearch」と入力します。

  8. [基幹業務のデータ] をクリックし、[選択した外部データ ソースをクロールする] をクリックします。

  9. [AWProducts] の横のボックスを選択します (図 12 参照)。

    図 12. [新しいコンテンツ ソース] ダイアログ ボックス

    [新しいコンテンツ ソース] ダイアログ ボックス

  10. [このコンテンツ ソースのフル クロールを開始] の横のボックスを選択します。

  11. [OK] をクリックします。

これで、Search サービスは、新しいデータをクロールして、そのコンテンツの検索インデックスを作成します。この処理は数分で終了します。ただし、このビューのレコード数が数百万件に及ぶ場合は、処理に大量の時間がかかります。[更新] リンクをクリックして状態を更新できます。状態が [アイドル] になると、検索クロールは終了です。

検索をテストするには

  1. 以前作成した BCS 検索サイトを開きます。

  2. 検索ボックスに、「Jersey」と入力し、Enter キーを押します。

  3. 結果のタイトルを適当にクリックして、その項目のプロファイル ページを表示します。

ここでは、外部データを扱う基本的な検索を行いました。次は、プロファイル ページと検索結果の外観を制御する方法について説明します。

検索の結果をカスタマイズする

SharePoint Designer 2010 を使用して、SharePoint Server Search に 2 つの簡単な変更を加えます。最初は、項目の読み取り操作を変更して、プロファイル ページとその説明を表示するフィールドを構成します。たとえば、特に、説明の ProductID と ProductModel は、ユーザー フレンドリではありません。 また、CultureID フィールドは不便です。

SharePoint Designer を開いたままの場合は、次の手順のうち、最初の 2 つを省略できます。

プロファイル ページに表示するフィールドを構成するには

  1. SharePoint Designer のナビゲーション ウィンドウで、[外部コンテンツ ​​タイプ] をクリックします。

  2. その外部コンテンツ タイプを構成するには、ボックスの一覧の [Products] をクリックします。

  3. [外部コンテンツ タイプの操作] グループで、[項目の読み取り] をダブルクリックします。

  4. [次へ] を 2 回クリックします。

  5. [戻り値パラメーター] ページで、[CultureID] ボックスをオフにします。

  6. [商品 ID] をクリックします。

  7. [プロパティ] ウィンドウで、[表示名] ボックスに、「ID」と入力します。

  8. [ProductModel] をクリックします。

  9. [プロパティ] ウィンドウで、[表示名] ボックスに、「Model」と入力します。

  10. [完了] をクリックします。

  11. ディスクのアイコンをクリックして、外部コンテンツ タイプを保存します。

  12. リボンで [プロファイル ページの作成] をクリックします。

  13. 警告ダイアログ ボックスで、[はい] をクリックします。

結果をテストできます。そのためには、SharePoint Server Search サイトに移動して、プロファイル ページの 1 つを表示します。この変更は、そのプロファイル ページに対してのみ行われています。したがって、再度クロールを実行する必要はありません。明らかに、外部コンテンツ タイプを通じて行う変更には限度があります。さらに高度なカスタマイズを行う場合は、ページを自分の思いどおりに直接構成します (たとえば、操作を通じて ID フィールドを削除することはできませんが、プロファイル ページからは手動で削除できます)。後で、外部コンテンツ タイプからプロファイル ページを作成すると、直接行った変更は上書きされます (図 14 参照)。

図 14. 変更後のプロファイル ページ

変更後のプロファイル ページ

2 つ目の変更として、Read List 操作を調整して、一部のフィールドを SharePoint Server Search インデックスから除外します。この手順では、説明をインデックスから削除します。この手順を始める前に、SharePoint Server Search で microfiber という単語を検索してみます。説明の中でいくつかの一致が見つかります。次に、Description フィールドを Read List 操作から削除して、再度 SharePoint Server Search を実行してみます。すると、今度はインデックスされません。

検索用インデックスが作成されるフィールド値を構成するには

  1. SharePoint Designer で、[外部コンテンツ タイプの操作] グループの [リストの読み取り] 操作をダブルクリックします。

  2. [次へ] を 2 回クリックします。

  3. [次へ] を 2 回クリックします。

  4. [戻り値パラメーター] ページで、[説明] ボックスをオフにします。

  5. [完了] をクリックし、[保存] をクリックします。

外部コンテンツ タイプが変更されましたが、次は、フル クロールを実行して SharePoint Server Search インデックスを更新する必要があります。外部コンテンツ タイプを構成すると、常に、その内部 ID が変更されます。コンテンツ ソースを再作成する必要があります。再作成しないと、古い ID を検索するのでエラーが発生します。

変更された外部コンテンツ タイプに対して検索インデックスを更新するには

  1. SharePoint サーバーの全体管理の Search サービスの構成で、ナビゲーション ウィンドウの [クロール] の [コンテンツ ソース] をクリックします。

  2. AWProductSearch コンテンツ ソースをクリックし、[削除] をクリックして、[はい] をクリックします。

  3. [新しいコンテンツ ソース] をクリックします。

  4. [名前] ボックスに、「AWProductSearch」と入力します。

  5. [基幹業務のデータ] をクリックします。

  6. [選択した外部データ ソースをクロールする] をクリックします。

  7. [AWProducts] ボックスを選択します。

  8. [このコンテンツ ソースのフル クロールを開始] ボックスを選択します。

  9. [OK] をクリックします。

クロールが完了したら、SharePoint Server Search サイトに戻って、microfiber を再度検索してみます。一致は見つかりません。ただし、この場合でも、Jersey を検索し、Long-Sleeve Logo Jersey の項目の 1 つをクリックすると、単語 microfiber を含む説明がプロファイル ページに表示されます。ただし、検索結果からは除外されます。

マスターと詳細のリレーションシップの関連付けを使用する

また、Business Connectivity Services を使用すると、2 つの外部コンテンツ タイプの間に、マスター/詳細 (親と子) のリレーションシップを定義することもできます。マスター外部コンテンツ タイプの結果プロファイル ページは、その特定のマスター レコードの詳細レコードのリストによって自動的に生成されます。ここでは、特に、このような関連付けを Search サービスがどのように処理するかについて説明します。

ここで説明する内容を試すには、詳細外部コンテンツ タイプ (Product) からマスター外部コンテンツ タイプ (ProductModel) への関連付けを作成します。次に、SharePoint Server Search でコンテンツ ソースを作成して、これらの外部コンテンツ タイプに対して結果がどのように生成されるかを確認します。次に、詳細レコードをマスター レコードへのアタッチして処理することにより、結果セットをよりシンプルで使いやすくなるように構成を変更する方法について確認します。

外部コンテンツ タイプの関連付けを作成するには

  1. SharePoint Designer の [ナビゲーション] ウィンドウで、[外部コンテンツ タイプ] をクリックします。

  2. リボンの [新規作成] セクションで、[外部コンテンツ タイプ] をクリックします。

  3. [外部コンテンツ タイプの情報] グループで、[名前] の横の [新しい外部コンテンツ タイプ] をクリックします。ボックスに、「ProductModel」と入力します。この変更は [表示名] に反映されます。

  4. [外部コンテンツ タイプの情報] グループで、[表示名] の横の [ProductModel] をクリックします。ボックスに、「Model」と入力します。このラベルはプロファイル ページに表示されます。

  5. [外部システム] の横の [外部データ ソースの検出と操作の定義を行うには、ここをクリックします。] をクリックします。

  6. [接続の追加] をクリックします。

  7. [外部データ ソース タイプの選択] ダイアログ ボックスで、ボックスの一覧の [SQL Server] をクリックし、[OK] をクリックします。

  8. [SQL Server 接続] ダイアログ ボックスで、[データベース サーバー] に、「localhost」と入力します。

  9. [データベース名] ボックスに、「AdventureWorks」と入力します。

  10. [名前 (省略可能)] ボックスに、「AWProducts」と入力し、[OK] をクリックします。

  11. [AWModel] を展開します。

  12. [テーブル] を展開します。

  13. ポップアップ メニューを開くには、[ProductModel] を右クリックします。通常は、このテーブルが見つかるまでスクロールする必要があります。[新しい項目の読み取り操作] をクリックし、[完了] をクリックします。

  14. ポップアップ メニューを開くには、[ProductModel] を右クリックし、[新しいリストの読み取り操作] をクリックして、[完了] をクリックします。

  15. リボンで [概要ビュー] をクリックします。

  16. [フィールド] グループで、ボックスの一覧の [名前] をクリックします。

  17. リボンで [タイトルとして​​設定] をクリックします。

  18. 外部コンテンツ タイプを保存します。

  19. SharePoint Designer の [ナビゲーション] ウィンドウで、[外部コンテンツ タイプ] をクリックします。

  20. リボンの [新規作成] タブで、[外部コンテンツ タイプ] をクリックします。

  21. [外部コンテンツ タイプの情報] グループで、[名前] の横の [新しい外部コンテンツ タイプ] をクリックします。ボックスに、「ProductDetail」と入力します。この変更は "表示名" フィールドに反映されます。

  22. [外部システム] の横の [外部データ ソースの検出と操作の定義を行うには、ここをクリックします。] をクリックします。

  23. ポップアップ メニューを開くには、AWModel 内のテーブルで、[Product] を右クリックし、[新しい項目の読み取り操作] をクリックします。[完了] をクリックします。

  24. ポップアップ メニューを開くには、[Product] を右クリックし、[新しいリストの読み取り操作] をクリックします。[完了] をクリックします。

  25. ポップアップ メニューを開くには、[Product] を右クリックし、[新しい​​関連付け] をクリックします。

  26. [関連付けの表示名] ボックスに、「Products」と入力します。これにより、マスター レコードのプロファイル ページ内の詳細レコードのラベルが変更されます (図 15 参照)。

    図 15. 関連付けの外部コンテンツ タイプの選択

    外部コンテンツ タイプの選択

  27. [参照] をクリックします。

  28. [ProductModel] をクリックして選択します。

  29. [OK] をクリックし、[次へ] をクリックします。

  30. [入力パラメーター] ページの [データ ソース要素] ウィンドウで [ProductModelID] をクリックします。

  31. [プロパティ] ウィンドウで、[識別子へのマップ] ボックスを選択します。

  32. [次へ] を 2 回クリックします。

  33. [戻り値パラメーター] ページの [データ ソース要素] ウィンドウで、ProductIDNameProductNumberListPrice、および ProductModelID を除くすべてのフィールドをオフにします。

  34. 一番上のチェック ボックスを使用してすべてのフィールドをオフにした場合は、再度、ID を設定する必要があります。[データ ソース要素] ウィンドウで [ProductID] をクリックし、[プロパティ] ウィンドウで [識別子へのマップ] ボックスを選択します。

  35. [ProductID] をクリックし、[表示名] のテキストを「ID」に変更します。

  36. [ProductNumber] をクリックし、[表示名] のテキストを「Product Number」に変更します。

  37. [ListPrice] をクリックし、[表示名] のテキストを「List Price」に変更します (図 16 参照)。

    図 16. 関連付けの [戻り値パラメーター] ページ

    [戻り値パラメーター] ページ

  38. [完了] をクリックします。

  39. リボンで [概要ビュー] をクリックします。

  40. [フィールド] グループで、ボックスの一覧の [名前] をクリックします。

  41. リボンで [タイトルとして設定] をクリックします。

  42. 外部コンテンツ タイプを保存します。

  43. リボンで [プロファイル ページの作成] をクリックします。

  44. [モデル] タブをクリックして、最初の外部コンテンツ タイプを表示します。

  45. リボンで [プロファイル ページの作成] をクリックします。

この手順では、同じ AdventureWorks データベースに対して別の接続を作成しました。その理由は、検索内のコンテンツ ソースは、同じデータ ソースを使用して定義されているすべての外部コンテンツ タイプをクロールするからです。これらの異なる外部コンテンツ タイプをいつどのような方法でクロールするかを制御する場合は、各外部コンテンツ タイプのデータ ソースを個別に作成して、SharePoint Server Search に対して個々にコンテンツ ソースを作成できるようにする必要もあります。

また、これらの外部コンテンツ タイプには ID を設定する必要はありませんでした。SharePoint Designer によって、ビューではなく、テーブルの主キー フィールドが自動的に検出されます。

関連付けられた外部コンテンツ タイプを準備できました。次は、検索コンテンツ ソースを作成して、コンテンツ タイプのインデックスを作成する必要があります。また、検索コンテンツ ソースがあると、古いコンテンツ ソースを削除して、新しいインデックスの結果のみを表示することもできます。

関連付けられている外部コンテンツ タイプをクロールしてインデックスを作成するには

  1. SharePoint サーバーの全体管理の Search サービスの構成で、ナビゲーション ウィンドウの [クロール] の [コンテンツ ソース] をクリックします。

  2. AWProductSearch コンテンツ ソースをクリックし、[削除] をクリックして、[OK] をクリックします。

  3. [新しいコンテンツ ソース] をクリックします。

  4. [名前] ボックスに、「AWModelSearch」と入力します。

  5. [基幹業務のデータ] をクリックします。

  6. [選択した外部データ ソースをクロールする] をクリックします。

  7. [AWModel] ボックスを選択します。

  8. [このコンテンツ ソースのフル クロールを開始] ボックスを選択します。

  9. [OK] をクリックします。

[更新] をクリックして状態を更新します。クロールが終了したら、 Jersey を検索できます。結果は、マスター (Model) と詳細 (Product) の両方について表示されます。モデルの結果にサイズ (S、M、L など) はなく、それらへのリンクには、単語 ProductDetail ではなく、単語 ProductModel が含まれています。これらを適当にクリックして、関連付けによって作成されたマスター/詳細ビューを表示します。この検索は機能しますが、理想的ではありません。たとえば、この検索では、詳細の情報のインデックスは作成されません。詳細の一致を表示することはできます。ただし、これらはマスター レコードに基づくものではありません。たとえば、"Dissolver" を検索すると、結果には詳細しか表示されません。より適切な結果が得られるようにするには、まず、最初の段階で詳細レコードを排除し、次に、詳細レコード情報をマスター レコードにアタッチするように外部コンテンツ タイプを構成します。最初の変更は既に行っていますが、ここでは、インデックスを作成できるすべてのフィールドを削除します (図 17 参照)。

図 17. マスター/詳細の関連付けのプロファイル ページ

プロファイル ページ

定義した外部コンテンツ タイプのためにタブを開いたままにしている場合は、最初の 2 つの手順を省略します。

検索用インデックスが作成されるフィールド値を構成するには

  1. SharePoint Designer で、ナビゲーション ウィンドウの [外部コンテンツ タイプ] をクリックします。

  2. ボックスの一覧の [ProductDetail] をクリックして、その外部コンテンツ タイプを構成します。

  3. [外部コンテンツ タイプの操作] グループで、[リストの読み取り] 操作をダブルクリックします。

  4. [次へ] を 2 回クリックします。

  5. [戻り値パラメーター] ページで、[データ ソース要素] ウィンドウの ProductIDProductModelID を除くすべてのフィールドのボックスをオフにします (このチェック ボックスを使用してすべてのフィールドをオフにした場合は、ProductID の [識別子へのマップ] ボックスを選択する必要があります)。

  6. [完了] をクリックします。

  7. 外部コンテンツ タイプを保存します。

モデルの変更後は、通常の手順に従って、フル クロールを実行します。必ず、既存のコンテンツ ソースを削除してから新しいコンテンツ ソースを作成してください。Dissolver を検索しても結果は得られません。次は、関連付けられているデータが検索インデックス中にマスターにアタッチされるようにモデルを構成します。この変更は SharePoint Designer によってサポートされていないため、モデルは XML フォームで構成する必要があります。そのためには、モデルを XML ファイルにエクスポートし、その XML ファイルを構成したら、その XML ファイルをインポートします。

BDC モデルを XML ファイルにエクスポートするには

  1. SharePoint Designer で、ナビゲーション ウィンドウの [外部コンテンツ タイプ] をクリックします。

  2. ボックスの一覧で、[ProductDetail] の横の [AWModel] をクリックして、その外部コンテンツ タイプを選択します。

  3. リボンで [業務データ カタログ モデルのエクスポート] をクリックします。

  4. [業務データ カタログ モデルのエクスポート] ダイアログ ボックスで、[BDC モデル名] に、「ProductDetail」と入力し、[OK] をクリックします。

  5. [ファイルの種類] を [すべてのファイル] に変更します。

  6. ファイルを保存するフォルダーを選択します。

  7. [ファイル名] ボックスを「ProductDetail.xml」に変更し、[保存] をクリックします。

このファイルの構成には、どの XML エディターでも使用できます。ここで使用したのは SharePoint Designer です。ファイル ブラウザーでファイルを見つけたら、そのファイルを右クリックし、ポップアップ メニューから [Microsoft SharePoint Designer で編集] を選択します。また、ファイルを SharePoint Designer にドラッグしたり、メモ帳などのテキスト エディターで変更することもできます。

この XML ファイルに、次の例の太字の行を追加します。Read List 要素または Read Item メソッドではなく、関連付けの MethodInstances 要素にいることを確認します。

<MethodInstances>  
<Association Name="ProductNavigate Association"
  Type="AssociationNavigator" ReturnParameterName="ProductNavigate Association"
  DefaultDisplayName="Products">
  <Properties>
    <Property Name="AttachmentAccessor" Type="System.String"></Property>
    <Property Name="ForeignFieldMappings" ...>
  </Properties>

変更を保存したら、次の手順に従って、変更を含むモデルをインポートします。

XML ファイルをインポートして BDC モデルを更新するには

  1. SharePoint サーバーの全体管理の BDC Service の構成で、[編集] をクリックします。

  2. リボンの [表示] セクションで、ドロップダウン リストから [外部コンテンツ タイプ] を選択します。

  3. [ProductDetail] ドロップダウン メニューをクリックし、[削除] をクリックして、[OK] をクリックします。

  4. リボンの [業務データ カタログ モデル] セクションで、[インポート] をクリックします。

  5. [業務データ カタログ ファイル] ボックスに XML ファイルの名前を入力するか、[参照] ボタンをクリックして XML ファイルを参照します。

  6. [インポート] をクリックします。1 つまたは 2 つの警告が表示されることがありますが、エラーではありません。

  7. [OK] をクリックします。

注意

モデルをエクスポートするときに選択した名前は、外部コンテンツ タイプの名前と同じです。モデルと外部コンテンツ タイプとは同じものに思えるかもしれませんが、同じではありません。同じモデル ファイルを再度インポートする必要がある場合は、外部コンテンツ タイプを既に削除していても、重複するモデルの存在を示すエラーが表示されます。同じモデル ファイルを再度インポートするときは、必ず、外部コンテンツ タイプではなく、モデルを削除してください。

通常の手順に従って、AWModelSearch コンテンツ ソースを再作成し、フル クロールを実行します。次に、Dissolver を検索すると、希望どおりの結果が得られます。また、Jersey も検索してみてください。モデルのレコードのみが結果に表示されることを確認できます。

この記事のパート 2 でも、引き続き、SharePoint Server Search で外部コンテンツ タイプを使用するように構成する方法について説明します。

SharePoint Server 2010 Search に外部コンテンツ タイプを構成する (2/2)

その他の技術情報

詳細については、次のリソースを参照してください。

著者について

Bob McClellan 氏は、アプリケーション開発に従事しています。そのほとんどはデータベース システムで、業務歴はほぼ 3 年です。最近、彼は Power Tools for Open XML (英語) (Open XML ドキュメントを操作する Windows PowerShell コマンドレット群) を業務で扱いました。多種多様なプログラミング言語、データベース システム、および開発環境での豊富なプログラミング経験があります。