Lägga till sökmotorer

Den nya förenade informationssökningen i hjälpsystemet använder sig av konceptet sökmotortyper och sökmotorer. En motortyp är en metamotor i vilken ett antal faktiska sökmotorer kan skapas genom parameterisering.

Nya motortyper tillhandahålls med hjälp av 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>
			Förekomster av XYZ Search söker igenom webbplatsen XYZ.
		</description>
	</engineType>
Den här utökningspunkten används till att lägga in sökdeltagare i informationssökningen. Alla sökmotorer kan konfigureras individuellt. När sökningen påbörjas körs alla sökmotorer som bakgrundsprocesser och resultaten sammanställs i hjälpvyn direkt under frågan.

Sökmotorerna som definieras här kommmer inte automatiskt att visas som förenade sökdeltagare förrän bindning till motorprodukt har etablerats, om inte attributet productId har lämnats odefinierat. För motorer som definierar det, visas endast de som är bundna till en specifik produkt när den produkten körs.

Sökmotorer kan helt enkelt skriva en URL-adress och visa endast en träff som innehåller den URL-adressen som href. Populära sökmotorer med API-funktioner som förutsätter licens går att kopplas in på det sättet. I andra änden av spektrumet kan sökmotorer kommunicera med servern och få individuella träffar med information som label, href, short description, score etc. Lokala hjälpmotorer kan få träffar på det sättet.

Oavsett vilken sökmekanism som används kan motorer tillhandahålla diverse olika omfångsinställningar med hjälp av JFace inställningssidor. De sidorna visas när du följer länken 'Avancerade inställningar' från hjälpvyn. Förutom rotinställningssidor som definieras med motorn, går det att lägga in ytterligare undersidor med inställningar när mer avancerade inställningar önskas.

Omfångsinställningarna läses in och lagras med hjälp av IPreferenceStore-objekt. Omfångsinställningarna för alla motorer samlas under en namngiven omfångsuppsättning. När den först öppnas, skapas standardomfångsuppsättningen ('Standard'), men användare kan definiera fler omfångsuppsättningar och växla mellan dem.

Eftersom förenad söksupport är en del av insticksprogrammet org.eclipse.help.base, behövs det en fabrik för att skapa sökomfångsobjekt av data i inställningslagret. Klienter som använder sidor med omfångsinställningar måste även använda omfångsfabriker.

Motorer som definieras i den här utökningspunkten visas inte i gränssnittet som standard. Det som visas där är en konkret förekomst av en sökmotor som går att ändra individuellt. Produkter kan förkonfigurera hjälpsystemet med ett antal förekomster av de registrerade motortyperna, eventuellt parameteriserade för att fungera på ett önskat sätt. Dessutom kan användare lägga till sina egna förekomster av de registrerade motorerna och konfigurera dem efter egna önskemål:

<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>