検索エンジン

org.eclipse.help.ui.searchEngine

3.1

この拡張ポイントは、フェデレーテッド・ヘルプ検索の検索参加プログラムをプラグインとして組み込む場合に使用されます。各検索エンジンは、別々に構成することができます。検索が開始されると、各検索エンジンはバックグラウンド・ジョブとして実行され、クエリーの結果が即時にヘルプ・ビューに一覧表示されます。

ここで定義される検索エンジンは、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>

特定のタイプの検索エンジンを定義します。検索エンジン・タイプは、ユーザーによって、または製品によるプリロードによって、具体的なエンジン・インスタンスを作成するために使用できます。操作性の向上のためエンジン・タイプを構成できるようにしてください。そうすることで、単一のエンジン・タイプから多数のエンジンを作成できるようになります。



<!ELEMENT description (#PCDATA)>

検索エンジンの簡略説明



<!ELEMENT subpage EMPTY>

<!ATTLIST subpage

id       CDATA #REQUIRED

label    CDATA #REQUIRED

class    CDATA #IMPLIED

category CDATA #REQUIRED>

engine 要素で定義されたルート・スコープ設定ページに対する子ページ。 pageClass エンジン属性が定義されない場合、サブページは無視されます。



<!ELEMENT engine (description? , param*)>

<!ATTLIST engine

productId    CDATA #IMPLIED

engineTypeId CDATA #REQUIRED

enabled      (true | false)

label        CDATA #IMPLIED

id           CDATA #REQUIRED>

特定の検索エンジン・タイプの具体的なインスタンスを指定します。 インスタンスは、その製品がアクティブなときにのみ表示されるように製品にバインドすることができます。エンジンは独自のラベルと説明を持つことができます。 指定されないと、エンジン・タイプのデータが使用されます。最終的に、各エンジン・タイプは、エンジン・タイプを構成するためにエンジン・タイプに渡すことができる有効なパラメーター・セットを定義します。エンジンは、これらのパラメーターの値を指定できます。



<!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}&amp;ul=&amp;ps=20&amp;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 を実装するクラスの完全修飾名を提供する必要があります。

ヘルプ UI プラグインは、ローカル・ヘルプ検索エンジン・インスタンスだけでなく、ローカル・ヘルプ文書、InfoCenter、および Web 検索のための検索エンジン・タイプを提供します。このインスタンスは、パラメーターを受け入れず、プロダクト ID がありません。従って、これはあらゆる製品に現れます。

製品は、エンジン 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=all

Web 検索結果が、url パラメーターで置換された検索ストリングで Web ブラウザーをオープンする 1 つのリンクとして表示されます。