Plugge inn søkemotorer

I forbindelse med nytt forent informasjonssøk i hjelpesystemet brukes begrepene søkemotortyper og søkemotorer. En motortype er en metamotor som en rekke konkrete søkemotorer kan opprettes fra, ved hjelp av parametere.

Nye motortyper oppgis via 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>
Dette utvidelsespunktet brukes når det skal plugges inn søkedeltakere i informasjonssøket. Hver søkemotor kan konfigureres individuelt. Når et søk startes, kjøres søkemotorene i bakgrunnen og søkeresultatet sorteres umiddelbart i hjelpevisningen under spørringen.

Søkemotorer som er definert her, vises ikke automatisk som forente søkedeltakere før de må knyttes til motorprodukter, med mindre det ikke er definert et productId-attributt. Av motorene med slik definisjon er det bare de som er knyttet til et bestemt produkt, som vises når produktet kjører.

Søkemotorer kan enkelt danne en URL og oppgi bare ett treff med URLen som href. Populære søkemotorer som API-støtte krever lisens for, kan på denne måten plugges inn. I motsatt ende kan søkemotorer kommunisere med serveren og motta enkelttreff med informasjon om for eksempel etikett, href og en kort beskrivelse. På denne måten finner lokale søkemotorer treff.

Uavhengig av søkemetode kan det oppgis forskjellige innstillinger for motorens søkeomfang via JFace-preferansesidene. Disse sidene vises når det klikkes på linken "Avanserte innstillinger" i Hjelp-visningen. I tillegg til rotpreferansesider som er definert med motoren, kan det plugges inn flere underliggende preferansesider for mer avanserte innstillinger.

Innstillingene for omfang lastes inn og lagres ved hjelp av IPreferenceStore-objekter. Alle motorenes omgfangsinnstillinger grupperes sammen i et navngitt omfangssett. Når dette åpnes, brukes det definerte standardomfanget (Default), men brukere kan definere flere omfangssett og veksle mellom dem.

Siden støtte for forent søking er en del av plugin-modulen org.eclipse.help.base, må det en factory til for å opprette søkeomfangsobjekter fra dataene i preferanselageret. Klienter som plugger inn preferansesider for omfang må også plugge inn omfang-factories.

Motorer som er definert i dette utvidelsespunktet, vises som standard ikke i brukergrensesnittet. Derimot vises en konkret forekomst av en søkemotor som kan endres individuelt. Produkter kan forhåndskonfigurere hjelpesystemet med en rekke forekomster av de registrerte motortypene, muligens ved hjelp av parametere som angir ønsket utføring. Brukere kan dessuten legge til egne forekomster av de registrerte motorene og konfigurere dem fritt:

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