統合検索エンジン・タイプ

ヘルプ・システムの新しい統合情報検索は、検索 エンジン・タイプ検索エンジンの概念を使用 します。エンジン・タイプは、多数の具体的な検索 エンジンをパラメーター化によって作成することができる メタ・エンジンです。

新規エンジン・タイプは 、 org.eclipse.help.ui.searchEngine でコントリビュートされて います。

<extension point="org.eclipse.help.ui.searchEngine">
	<engineType
		scopeFactory="com.example.xyz.XYZScopeFactory"
		label="XYZ Search"
		class="com.example.xyz.search.XYZSearch"
		icon="icons/etool16/xyzsearch.gif"
		pageClass="com.example.xyz.search.XYZSearchPage"
		id="com.example.xyz.XYZSearch">
		<description>
			Instances of XYZ Search search the XYZ site.
		</description>
	</engineType>
この拡張ポイントは、情報検索の検索参加プログラムを プラグインとして組み込む場合に使用されます。各検索 エンジンは、別々に構成することができます。検索が 開始されると、各検索エンジンは、バックグラウンド・ ジョブとして実行され、結果はクエリーで即時に ヘルプ・ビュー内で照合されます。

ここで定義 される検索エンジンは、エンジン製品バインディング が確立されると、統合検索参加プログラムとして自動的 に表示されます。ただし、productId 属性が未定義のままの場合を除きます。属性を定義する エンジンの場合、特定の製品にバインドされたもののみが、 製品の実行時に表示されます。

検索エンジンは、単に URL を構成して、その URL を href として含む 1 つのヒットのみを提供 します。API がライセンスのサポートを必要とする一般的な検索エンジンは、 このようにプラグインとして組み込み可能 です。これに対し、検索 エンジンはサーバーと通信し、ラベル、HREF、簡略説明、 スコアなどの情報を持った個々のヒットを受信します。 ローカルのヘルプ・エンジンは、ヒットをこのように 作成します。

いずれの検索機構でも、エンジンは JFace 設定 ダイアログを使用して、さまざまな検索の範囲の設定を 提供することができます。これらのページは、「ヘルプ」 ビューで「拡張設定」リンクの後に続く場合に表示され ます。エンジンを使用して定義されたルート設定 ページに加えて、追加の設定サブページがプラグイン として組み込まれ、より多くの拡張設定ができます。

範囲設定がロードされ 、IPreferenceStore オブジェクトを使用 して保管されます。すべてのエンジンに対する範囲 設定は、「範囲セット (scope set)」 として名前を付けて一緒にグループ化されます。最初に開かれた とき、デフォルトの範囲セット (「デフォルト」) が作成 されますが、より多くの範囲セットを定義して、それらを切り替えて 使用することもできます。

統合検索のサポートは 、org.eclipse.help.base プラグインの一部 なので、ファクトリーは設定ストアのデータから検索の範囲の オブジェクトを作成する必要があります。 範囲の設定ダイアログをプラグインとして組み込む クライアントは、範囲ファクトリーも同様にプラグインとして 組み込む必要があります。

この拡張ポイントで定義されたエンジンは、 デフォルトでは UI に表示されません。そこに表示 されるのは、別々に変更することができる検索エンジンの 具象インスタンスです。製品は登録済み エンジン・タイプの多数のインスタンスを使用して、 ヘルプ・システムを事前定義することが可能です。 希望するとおりに実行するようパラメーター 化される可能性があります。また、ユーザーは登録済み エンジンの独自のインスタンスを追加して、必要に応じて 構成することができます。

<engine
	enabled="true"
	engineTypeId="com.example.xyz.search.XYZSearch"
	id="com.example.xyz.XYZSearch"
	label="XYZ Search">
</engine>
<engine
	enabled="true"
	engineTypeId="org.eclipse.help.ui.web"
	id="org.eclipse.sdk.Eclipse"
	label="%search.Eclipse.label">
	<description>
		%search.Eclipse.desc
	</description>
	<param 
		name="url" 
		value="http://eclipse.org/search/search.cgi?q={expression}&amp;ul=&amp;ps=20&amp;m=all">
	</param>
</engine>