ここで定義される検索エンジンは、productId
属性が未定義でない限り、エンジン製品バインディングが確立されるまで、統合検索参加プログラムとして自動的に表示されることはありません。属性が未定義のままの場合を除きます。属性を定義するエンジンの場合、特定の製品にバインドされたもののみが、製品の実行時に表示されます。
検索エンジンは単純に URL を作成し、その URL を href として含めたものを結果として返すことができます。 API サポートでライセンスが必要な一般的な検索エンジンはこのようにプラグインとして機能します。その一方で、サーバーと通信を行い、ラベル、ハイパーリンク、簡略説明、スコアなどの各種情報から成る結果を受け取るのも、また検索エンジンの機能です。ローカルのヘルプ・エンジンが返す検索結果にもこの機能が利用されています。
いずれの検索機構でも、エンジンは JFace 設定ダイアログを使用して、さまざまな検索の範囲の設定を提供することができます。これらのページは、「ヘルプ」ビューから「拡張設定」リンクを選択すると表示されます。エンジンとともに定義されるルート設定ページに加え、より詳細な設定を行うための設定サブページを追加できます。
範囲設定がロードされ、IPreferenceStore
オブジェクトを使用して保管されます。すべてのエンジンに対する範囲設定は、「範囲セット (scope set)」として名前を付けて一緒にグループ化されます。最初に開かれたとき、デフォルトの範囲セット (「デフォルト」) が作成されますが、より多くの範囲セットを定義して、それらを切り替えて使用することもできます。
統合検索のサポートは、org.eclipse.help.base
プラグインの一部なので、ファクトリーは設定ストアのデータから検索の範囲のオブジェクトを作成する必要があります。範囲の設定ダイアログをプラグインとして組み込むクライアントは、範囲ファクトリーも同様にプラグインとして組み込む必要があります。
この拡張ポイントで定義されたエンジンは、デフォルトでは UI に表示されません。そこに表示されるのは、別々に変更することができる検索エンジンの具象インスタンスです。製品は登録済みエンジン・タイプの多数のインスタンスを使用して、ヘルプ・システムを事前定義することができます。これらは、要求に応じて実行できるようにパラメーター化されています。また、ユーザーは登録済みエンジンの独自のインスタンスを追加して、必要に応じて構成することができます。
<!ELEMENT extension (engineType* , engine*)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
<!ELEMENT engineType (description? , subpage*)>
<!ATTLIST engineType
id CDATA #REQUIRED
label CDATA #REQUIRED
icon CDATA #IMPLIED
class CDATA #REQUIRED
pageClass CDATA #IMPLIED
scopeFactory CDATA #IMPLIED>
特定のタイプの検索エンジンを定義します。検索エンジン・タイプは、ユーザーによって、または製品によるプリロードによって、具体的なエンジン・インスタンスを作成するために使用できます。操作性の向上のためエンジン・タイプを構成できるようにしてください。そうすることで、単一のエンジン・タイプから多数のエンジンを作成できるようになります。
org.eclipse.help.search.ISearchEngine
を実装するクラスの完全修飾名。クラスは、特定の照会と範囲に基づいて検索する役割があります。
org.eclipse.help.ui.RootScopePage
クラスを拡張するクラスの完全修飾名。このページは、検索エンジンのマスター・スイッチを保持し、通常、エンジンの検索範囲を限定するために使用されるウィジェットをホストするために使用されます。
org.eclipse.help.ui.ISearchScopeFactory
を実装するクラスの完全修飾名。ファクトリーは、IPreferenceStore
クラスに保管された設定から ISearchScope オブジェクトを作成する役割があります。
pageClass
が指定された場合、スコープ・ファクトリーも指定しなければなりません。<!ELEMENT description (#PCDATA)>
検索エンジンの簡略説明
<!ELEMENT subpage EMPTY>
<!ATTLIST subpage
id CDATA #REQUIRED
label CDATA #REQUIRED
class CDATA #IMPLIED
category CDATA #REQUIRED>
engine
要素で定義されたルート・スコープ設定ページに対する子ページ。
pageClass
エンジン属性が定義されない場合、サブページは無視されます。
org.eclipse.help.ui.ISearchScopePage
インターフェースを実装するクラスの完全修飾名。
<!ELEMENT engine (description? , param*)>
<!ATTLIST engine
productId CDATA #IMPLIED
engineTypeId CDATA #REQUIRED
enabled (true | false)
label CDATA #IMPLIED
id CDATA #REQUIRED>
特定の検索エンジン・タイプの具体的なインスタンスを指定します。 インスタンスは、その製品がアクティブなときにのみ表示されるように製品にバインドすることができます。エンジンは独自のラベルと説明を持つことができます。 指定されないと、エンジン・タイプのデータが使用されます。最終的に、各エンジン・タイプは、エンジン・タイプを構成するためにエンジン・タイプに渡すことができる有効なパラメーター・セットを定義します。エンジンは、これらのパラメーターの値を指定できます。
org.eclipse.core.runtime.Platform.getProduct()
で定義されているように)
現在の製品に適切なエンジンを判別するために使用します。指定されない場合、このエンジンはすべての製品で表示されます。true
の場合、エンジンは初期状態で使用可能です。ユーザーは UI でこの値を上書きできます。<!ELEMENT param EMPTY>
<!ATTLIST param
name CDATA #REQUIRED
value CDATA #REQUIRED>
検索エンジン・タイプのこのインスタンスを構成するために使用されるオプション・パラメーター。有効なパラメーターはエンジン・タイプによって定義されます。
<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>
<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}&ul=&ps=20&m=all"
>
</param>
</engine>
</extension>
engineType
の属性 class
は、org.eclipse.help.search.ISearchEngine
を実装するクラスの完全修飾名を提供する必要があります。属性 pageClass
は、org.eclipse.help.ui.RootScopePage
を拡張するクラスの完全修飾名を提供する必要があります。属性 scopeFactory
は、org.eclipse.help.ui.ISearchScopeFactory
を実装するクラスの完全修飾名を提供する必要があります。要素 subpage
の属性 class
は、org.eclipse.help.ui.ISearchScopePage
を実装するクラスの完全修飾名を提供する必要があります。
製品は、エンジン ID と必須パラメーターを使用して、InfoCenter や Web 検索の具体的なインスタンスを作成することができます。
InfoCenter エンジン・タイプは、エンジン Id org.eclipse.help.ui.infoCenter
を持ち、InfoCenter がインストールされるリモート・サーバーを指す 1 つのパラメーター url
を受け入れます。結果は、ローカル・ヘルプの結果と同様の方法で表示されます。
以下の例にあるように、Web 検索エンジン・タイプは、エンジン ID org.eclipse.help.ui.web
を持ち、置換シンボル '{expression}' を実際の検索ストリングに置き換えて具体的な検索照会を表す 1 つのパラメーター url
を受け入れます。
http://eclipse.org/search/search.cgi?q={expression}&ul=&ps=20&m=allWeb 検索結果が、
url
パラメーターで置換された検索ストリングで Web ブラウザーをオープンする 1 つのリンクとして表示されます。
Copyright (c) 2000, 2005 IBM Corporation and others.
All rights reserved.
This program and the accompanying materials are made
available under the terms of the Eclipse Public License v1.0 which accompanies
this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html