除非
productId
屬性維持未定義,否則在建立引擎產品連結之前,這裡定義的搜尋引擎不會自動顯示成聯合搜尋參與者。如果引擎定義了這個屬性,只有連結至特定產品的引擎才會在執行產品時顯示出來。
搜尋引擎可以只是一個 URL,且只提供一個含有這個 URL 作為 href 的觸及項。 其 API 支援需要授權的常用搜尋引擎, 可以依這種方式外掛。在另一方面,搜尋引擎可以與伺服器通訊,並接收含有資訊(像是標籤、href、簡要說明、分數等等)的個別觸及項。本端說明引擎可以用這種方式產生觸及項。
不管搜尋機制為何,引擎都可以利用 JFace 喜好設定頁面來提供各種不同的搜尋範圍設定。當您從「說明」視圖點選「進階設定」鏈結時, 即會顯示這些頁面。除了以引擎定義的根喜好設定頁面之外, 還可以外掛其他喜好設定子頁面,以得到更多的進階設定。
您可利用 IPreferenceStore
物件來載入及儲存範圍設定。所有引擎的範圍設定都會群組在一起,
放在指名的範圍集之下。當您第一次開啟時,即會建立預設範圍集 ('Default'),但使用者可以定義其他範圍集並在其間轉換。
由於聯合搜尋支援是 org.eclipse.help.base
外掛程式的一部分,
因此需要有 Factory 從喜好設定儲存庫中的資料建立搜尋範圍物件。外掛了範圍喜好設定頁面的用戶端,也需要外掛範圍 Factory。
依預設,定義在這個延伸點中的引擎,不會顯示在 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
之類別的完整名稱。
Factory 負責從 IPreferenceStore
類別所儲存的設定中建立 ISearchScope 物件。
如果指定了 pageClass
,也必須指定範圍 Factory。
<!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 之遠端伺服器的單一參數 url
。
結果會依照本端說明結果的相同方式來顯示。
Web 搜尋引擎類型的引擎 ID 是 org.eclipse.help.ui.web
,它接受代表具體搜尋查詢的單一參數 url
,這個具體搜尋查詢的實際搜尋字串更換成替代符號 '{expression}',如下列所示:
http://eclipse.org/search/search.cgi?q={expression}&ul=&ps=20&m=allWeb 搜尋結果會顯示成單一鏈結,這個鏈結會以
url
參數中所代入的搜尋字串來開啟 Web 瀏覽器。
Copyright (c) 2000, 2005 IBM Corporation and others.
All
rights reserved.這個程式和檢附的資料是遵循這項發行檢附的 Eclipse Public License 1.0 版條款而提供的,請造訪下列網址,取得這份條款:http://www.eclipse.org/legal/epl-v10.html