「說明」系統中新的聯合資訊搜尋係使用搜尋引擎類型和搜尋引擎的記號。引擎類型是一種 meta 引擎, 您可透過參數化從中建立許多具體的搜尋引擎。
透過 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
的觸及項。其 API 支援需要授權的常用搜尋引擎,
可以依這種方式外掛。在另一方面,搜尋引擎可以與伺服器通訊,並接收含有資訊(像是標籤、href、簡要說明、分數等等)的個別觸及項。本端說明引擎可以用這種方式產生觸及項。
不管搜尋機制為何,引擎都可以利用 JFace 喜好設定頁面來提供各種不同的搜尋範圍設定。當您從「說明」視圖點選「進階設定」鏈結時, 即會顯示這些頁面。除了以引擎定義的根喜好設定頁面之外, 還可以外掛其他喜好設定子頁面,以得到更多的進階設定。
您可利用 IPreferenceStore
物件來載入及儲存範圍設定。所有引擎的範圍設定都會群組在一起,
放在指名的範圍集之下。當您第一次開啟時,即會建立預設範圍集 ('Default'),但使用者可以定義其他範圍集並在其間轉換。
由於聯合搜尋支援是 org.eclipse.help.base
外掛程式的一部分,
因此需要有 Factory 從喜好設定儲存庫中的資料建立搜尋範圍物件。外掛了範圍喜好設定頁面的用戶端,也需要外掛範圍 Factory。
依預設,定義在這個延伸點中的引擎,不會顯示在 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}&ul=&ps=20&m=all"> </param> </engine>