検索範囲を使用する

Microsoft Office SharePoint Portal Server 2003 では、検索範囲はコンテンツ ソースに基づき、クロールと結び付いていました。コンテンツは、一度に 1 つの範囲にのみ含まれることができました。Microsoft Office SharePoint Server 2007 では、検索範囲は、範囲内の複数のアイテムに共通する要素に基づいてアイテムのコレクションを表すように拡張されています。たとえば、特定のコンテンツ ソース ("ポータル コンテンツ") のコンテンツを表す検索範囲だけでなく、"**** が作成したすべてのドキュメント" や "マーケティングに関連するすべてのドキュメント" のような検索範囲を定義することもできます。範囲とコンテンツ クロールの結び付きがなくなったので、範囲を作成した時点で、コンテンツが再クロールされるのを待つことなく、その範囲内のアイテムを検索に使用できます。

検索範囲には基本と複合の 2 種類があります。

基本範囲

基本範囲は、クローラがコンテンツのインデックスを作成すると範囲プラグインから自動的に生成され、インデックス対象のコンテンツの特定のプロパティに基づきます。

たとえば、"<特定の作成者の名前>によって作成されたすべてのアイテム" は、基本範囲の例です。

既定では、範囲プラグインは以下に対する範囲を作成します。

  • 表示 URL

  • サイト (ドメイン、サブドメイン、ホスト名)

  • 作成者

  • すべてのコンテンツ (すべてのコンテンツを含めるために使用)

  • グローバル クエリ除外 (コンテンツを除外するために使用)

複合範囲

複合範囲は、基本範囲をブール結合したものです。複数の範囲をグループ化でき、範囲グループ内で順序を付けることができます。

検索範囲のオブジェクト モデル

検索範囲を管理するためのクラスは、Microsoft.Office.Server.Search.dll に含まれる Microsoft.Office.Server.Search.Administration 名前空間の中にあります。

検索範囲オブジェクト モデルの図を次に示します。

検索範囲オブジェクト モデルl

検索範囲オブジェクト モデル

範囲システム全体の管理には、Scopes クラスを使用します。表 1 は、このクラスで使用できるメソッドの説明です。

表 1. Scopes クラスのメソッド

名前

説明

GetDisplayGroup()

特定のサイトの指定した範囲表示グループを取得します。.

GetDisplayGroupForSite()

指定したサイトの範囲表示グループを取得します。.

GetScope()

特定のサイトの指定した範囲を取得します。.

GetScopesForSite()

指定したサイトの範囲を取得します。.

StartCompilation

範囲のコンパイルを開始します。.

StopCompilation()

範囲のコンパイルを停止します。

Update

このオブジェクトに対して行われた変更を更新します。.

ScopeCollection クラスは、範囲のコレクション オブジェクトです。

個別の範囲は、Scope クラスで表されます。表 2 では、Scope クラスのプロパティについて説明します。

表 2. Scope クラスのプロパティ

名前

説明

AlternateResultsPageUrl()

この範囲の検索に対する異なる結果ページを指定します。

CompilationState()

範囲のコンパイル状態。次の値が使用されます。

  • Compiled

  • Empty

  • Invalid

  • NeedsCompile

  • NeedsRecompile

  • QueryExpanded

CompilationType()

範囲のコンパイルの種類。次の値が使用されます。

  • AlwaysCompile

  • ConditionalCompile

Description()

範囲の説明。

Name()

範囲の名前。

OwningSite()

範囲が属しているサイト。

Scope クラスの Rules() プロパティは ScopeRuleCollection オブジェクトを含みます。このオブジェクトは一連のルールを含むクラスであり、個々のルールは ScopeRule オブジェクトです。これらのルールは、そのスコープのコンテンツを含めたり除外したりするために適用されます。これらのルールの基本クラスは ScopeRule クラスです。表 3 で説明する 3 つのクラスが ScopeRule を継承します。

表 3. ScopeRule の派生クラス

名前

説明

AllContentScopeRule

検索インデックス内のすべてのコンテンツを含む範囲ルール。FilterBehavior メソッドは "Include" に設定され、変更できません。

URLScopeRule

表示 URL に基づくアイテムに適用される範囲ルール。URL のフォルダ、ホスト名、またはドメイン/サブドメインと照合されます。

PropertyQueryScopeRule

プロパティ値の比較に基づいてアイテムに適用される範囲ルール。

範囲の表示を管理するには、ScopeDisplayGroup クラスを使用します。ScopeDisplayGroupCollection クラスは、すべての表示グループを含み、検索システムの表示グループの管理に使用されます。