SharePoint Server Search の BDC モデル ファイルの拡張
ここでは、SharePoint Server Search の BDC モデル ファイルの拡張に使用できる方法について説明します。
最終更新日: 2010年10月13日
適用対象: SharePoint Server 2010
この記事の内容
大規模データの取得時にインライン プロパティ I/O を使用する
外部システムをクロールするときの列挙の最適化
UseClientCachingForSearch プロパティでクロール速度を向上させる
BDC モデル ファイルのセキュリティ
BDC メタデータ モデルには、特に Microsoft SharePoint Server 2010 Search をサポートするために作成されたプロパティが含まれています。これらのプロパティの一覧とその説明は、「SharePoint Server Search コネクタ フレームワーク」の「BDC モデル ファイルの検索固有のプロパティ」にある表を参照してください。検索を可能にする外部システムに対して BDC モデル ファイルを作成する場合は、そのモデル ファイルを拡張して、外部システムのクロール時のパフォーマンスを最適化することができます。
大規模データの取得時にインライン プロパティ I/O を使用する
一般的に、アイテムに返されるデータの一部が大規模な場合、SpecificFinder メソッドを使用してデータを返す代わりに、次の特定メソッドを使用してデータを取得する必要があります。
セキュリティ アクセス制御リスト (ACL) を渡すときは、WindowsSecurityDescriptor プロパティの代わりに BinarySecurityDescriptorAccessor メソッドを使用します。
ストリームを渡すときは、StreamAccessor メソッドを使用します。
ネットワークの待機時間が長くない場合は、通常望ましいのは、外部システムへの余分なトリップでかかるコストよりも、パフォーマンスの向上です。
外部システムをクロールするときの列挙の最適化
外部システムの 1 回の呼び出しで、100,000 を超えるアイテムを列挙しなでください。列挙を長時間実行すると、断続的な中断が発生し、クロールが完了しない可能性があります。BDC モデルでは、以下の例に示すように、個々に列挙できる論理フォルダーにデータを構築することをお勧めします。
この例では、ColumnA に固定の値セットがある 100 万行のデータベース テーブルに対して列挙を実行します。このシナリオでは、ColumnA を外部コンテンツ タイプと見なし、以下の SQL ステートメントを使用して、この値セットの列挙子を記述できます。
SELECT DISTINCT( ISNULL(ColumnA,'unknown')) as ColumnA FROM table
次に、以下の SQL ステートメントを使用して特定のファインダーを定義します。
SELECT DISTINCT( ISNULL(ColumnA,'unknown')) as ColumnA FROM table where ColumnA = @Value
最後に、以下のように関連付けナビゲーション操作を定義する必要があります。
Select * from table where ColumnA=@value
任意のメソッドで 2 分以内に結果を返し始める必要があります。そうでない場合、クローラは呼び出しを中止します。たとえば LIKE 句を使用する複雑な SQL ステートメントは、完了するまでに 2 分を超えるため、クローラは呼び出しを中止します。
UseClientCachingForSearch プロパティでクロール速度を向上させる
UseClientCachingForSearch プロパティは、列挙中にアイテムをキャッシュすることにより、フル クロールの速度を上げます。変更ログに基づく増分クロールを実装するときにも、このプロパティを使用することをお勧めします。これによって増分クロールの速度が上がります。
重要 |
---|
アイテムの大きさが平均で 30 キロバイトを超える場合は、このプロパティを設定しないでください。設定すると、非常に多くのキャッシュ不足が発生し、パフォーマンス向上が見込めなくなります。 |
BDC モデル ファイルのセキュリティ
リポジトリで NTLM 認証を使用する場合、クロールに PassThrough 認証を指定することをお勧めします。
プロファイル ページでは、フロントエンド Web サーバーからのマルチ ホップ委任の問題が原因で、Secure Store Service を使用する必要がある場合があります。この問題が発生したら、2 つの類似の LobSystemInstance インスタンスを作成することによって、プロファイル ページを許可しながら、クロールを最適化できます。最初のインスタンスでは、Secure Store Service 認証からの資格情報を使用する必要があります。このインスタンスには、ShowInSearchUI プロパティは含まれません。2 番目のインスタンスでは、PassThrough 認証を使用し、ShowInSearchUI プロパティを含める必要があります。プロファイル ページは最初の LobSystemInstance インスタンスを使用し、クローラーは 2 番目のインスタンスを使用します。
注意
これには、LobSystem レベルではなく LobSystemInstance レベルで、ShowInSearchUI プロパティを設定する必要があります。