カスタム インデックス コネクタの作成

最終更新日: 2010年4月21日

適用対象: SharePoint Server 2010

この記事の内容
アセンブリのコード作成
BCS モデル ファイルの作成
カスタム インデックス コネクタの展開

Microsoft SharePoint Server 2010 Search では、Microsoft Business Connectivity Services (BCS) を使用して外部データのクロールとインデックスの作成が行われます。外部システムが Business Connectivity Services で、直接、サポートされていない場合は、Web サービス, .NET Connectivity Assembly、あるいはカスタム インデックス コネクタを作成するコードを作成することにより、Business Connectivity Services 経由で外部システムを公開することができます。ただし、外部システムのエンティティ モデルが動的であり、ユーザー設定の型を含み、大規模である場合、そのデータ ソースの型のカスタム コネクタを作成することが推奨されます。詳細については、「.NET Assembly Connector を使用することとカスタム コネクタを作成することの違い」を参照してください。

このトピックは、SharePoint Server Search のカスタム インデックス コネクタを作成するための要件について、特に以下のタスクについて説明します。

  • カスタム インデックス コネクタのアセンブリのコード作成

  • Business Connectivity Services モデル ファイルの作成

  • カスタム インデックス コネクタの展開

ヒントヒント

Business Connectivity Services の Web サービスと .NET Connectivity Assembly を作成する詳細については、「.NET Connectivity Assemblies と Web サービスを作成する」を参照してください。

アセンブリのコード作成

カスタム インデックス コネクタ アセンブリのコードでは、以下のことを行う必要があります。

  • 必要なコネクタ フレームワークの型を実装します。

  • 外部コンテンツ タイプを定義します。

  • SpecificFinder および Finder 操作のメソッドを実装します。

必要なコネクタ フレームワークの型の実装

SharePoint Server Search コネクタ フレームワークは、カスタム インデックス コネクタ アセンブリで実装する必要がある、以下の型を提供します。

これらの型は Microsoft.Office.Server.Search.Connector.BDC 名前空間にあります。カスタム インデックス コネクタ アセンブリでコネクタ フレームワークの型を使用するには、Microsoft.Office.Server.Search.Connector.dll と Microsoft.BusinessData.dll に参照を追加する必要があります。以下の手順では、Microsoft Visual Studio 2010 統合開発環境 (IDE) からこれを行う方法を示します。

参照を追加するには

  1. Visual Studio IDE でカスタム インデックス コネクタのプロジェクトを開き、[プロジェクト] メニューで、[参照の追加] をクリックします。

  2. [.NET] タブで、以下のコンポーネント名を持つ参照を選択した後、[OK] をクリックします。

    • Microsoft Search component

      [.NET] タブには、コンポーネント名が [Microsoft Search component] のエントリが 2 つ表示されるはずです。パス列が %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\\ISAPI\Microsoft.Office.Server.Connector.dll であるエントリを選択します。このエントリが [参照の追加] ダイアログ ボックスの [.NET] タブにない場合は、Microsoft.Office.Server.Search.Connector.dll のパスを使用して [参照] タブから参照を追加する必要があります。

    • Microsoft SharePoint Foundation Business Data

      このエントリが [参照の追加] ダイアログ ボックスの [.NET] タブにない場合は、[参照] タブから参照を追加する必要があります。このコンポーネントのアセンブリ、Microsoft.BusinessData.dll は、Microsoft.Office.Server.Search.Connector.dll と同じ場所にあります。

StructuredRepositorySystemUtility クラス

アセンブリは StructuredRepositorySystemUtility クラスから派生したクラスを含む必要があります。これは ISystemUtility インターフェイスの部分的な実装です。このクラスは、外部システムからの型が SharePoint Server Search に反映されるロジックを定義する、ExecuteStatic(IMethodInstance, ILobSystemInstance, [], IExecutionContext) メソッドを実装します。

LobUri クラス

アセンブリは、LobUri クラスから派生したクラスを含む必要があります。これは、ILobUri インターフェイスの実装です。このクラスは、Search Service アプリケーション から Business Connectivity Services に渡された URL をマップします。

INamingContainer インターフェイス

アセンブリは INamingContainer インターフェイスを実装するクラスを含む必要があります。このクラスは、Business Connectivity Services から Search Service アプリケーションに渡された URL をマップします。

外部コンテンツ タイプの定義

外部システムから返された各外部コンテンツ タイプについて、クラスを作成し、それに含まれるフィールドを定義します。この手順では、外部コンテンツ タイプのプロパティ スキーマを定義します。

Finder および SpecificFinder 操作のメソッドの実装

アセンブリは Finder および SpecificFinder 操作についてメソッドを実装する必要があります。Finder 操作は、外部システムからすべてのアイテムを返します。詳細については、「Finder の実装」を参照してください。SpecificFinder 操作は、外部システムからの特定のアイテムのすべての詳細を返します。詳細については、「SpecificFinder の実装」を参照してください。

BCS モデル ファイルの作成

カスタム インデックス コネクタには、Business Connectivity Services モデル ファイルを作成する必要があります。Business Connectivity Services モデル ファイルについての詳細は、「BDC モデルの作成」を参照してください。カスタム コネクタのモデル ファイルの例については、「サンプル BDC モデル: カスタム ファイル システム コネクタに接続する」を参照してください。

カスタム インデックス コネクタのモデルは、以下の表で指定されたプロパティを含む必要があります。

名前

メタデータ オブジェクト

説明

SystemUtilityTypeName

LobSystem

StructuredRepositorySystemUtility クラスから継承する、カスタム インデックス コネクタ アセンブリのクラスの完全修飾名を指定します。

InputUriProcessor

LobSystem

LobUri クラスから継承する、カスタム インデックス コネクタ アセンブリのクラスの名前を指定します。

OutputUriProcessor

LobSystem

INamingContainer インターフェイスを実装する、カスタム インデックス コネクタ アセンブリのクラスの名前を指定します。

カスタム インデックス コネクタの展開

カスタム インデックス コネクタを展開した後で、Search Service アプリケーションにそれを登録し、外部データをクロールするコンテンツ ソースを作成する必要があります。

カスタム インデックス コネクタを登録するには

  1. アプリケーション サーバーのグローバル アセンブリ キャッシュに、カスタム インデックス コネクタ アセンブリをインストールします。詳細については、「How to: Install an Assembly into the Global Assembly Cache」を参照してください。

  2. アプリケーション サーバーに Business Connectivity Services モデル ファイルをコピーします。

  3. アプリケーション サーバーで、SharePoint 2010 管理シェルを開始します。このツールを使用するための情報については、「SharePoint 2010 管理シェルを使用してサービス アプリケーションを管理する」を参照してください。

  4. コマンド プロンプトに、以下のコマンドを入力して実行します。

    $searchapp = Get-SPEnterpriseSearchServiceApplication

    前のコマンドが完了した後で、コマンド プロンプトに、以下のコマンドを入力して実行します。

    New-SPEnterpriseSearchCrawlCustomConnector -SearchApplication $searchapp -protocol ProtocolName -ModelFilePath "\\ServerName\FolderName\ModelFileName.xml" -Name Name

  5. アプリケーション サーバーに、以下のレジストリ キーを追加します。

    [HKEY_LOCAL_MACHINE]\ SOFTWARE\Microsoft\Office Server\14.0\Search\Setup\ProtocolHandlers\ProtocolName

  6. 前の手順で作成したレジストリ キーの値を、「OSearch14.ConnectorProtocolHandler.1」と設定します。

  7. コマンド プロンプトで、以下のコマンドを入力して実行します。

    1. net stop osearch14

    2. net start osearch14

コンテンツ ソースを作成するには

  1. [検索管理] ページで、[コンテンツ ソース] をクリックし、[新しいコンテンツ ソース] をクリックします。

  2. コンテンツ ソースの名前を入力し、[コンテンツ ソースの種類] で、[カスタム リポジトリ] をクリックします。

  3. [リポジトリの種類] で、カスタム インデックス コネクタのプロトコルを選択します。

  4. [開始アドレス] で、カスタム インデックス コネクタのプロトコルに基づく開始アドレスを指定します。

  5. [このコンテンツ ソースのフル クロールを開始] をクリックし、[OK] をクリックします。

関連項目

概念

コード サンプル: MyFileConnector カスタム インデックス コネクタ

SharePoint Server Search コネクタ フレームワーク

Business Connectivity Services: 方法説明とチュートリアル

その他の技術情報

MyFileConnector Custom Indexing Connector Sample (英語)