Sökmotor

org.eclipse.help.ui.searchEngine

3.1

Den här utökningspunkten används till att lägga in sökdeltagare i den samordnade hjälpsö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.

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

definierar en viss typ av sökmotor. Sökmotortyp kan användas till att skapa konkreta motorförekomster antingen av användaren eller förinlästa av produkten. Motortyper måste gå att konfigurera så att ett antal motorer kan skapas med hjälp en enda motortyp för att de ska vara praktiska att använda.



<!ELEMENT description (#PCDATA)>

en kortfattad beskrivning av sökmotorn



<!ELEMENT subpage EMPTY>

<!ATTLIST subpage

id       CDATA #REQUIRED

label    CDATA #REQUIRED

class    CDATA #IMPLIED

category CDATA #REQUIRED>

en underordnad sida till inställningssidan för rotomfånget i elementet engine. Om motorattributet pageClass inte definierats ignoreras undersidor.



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

<!ATTLIST engine

productId    CDATA #IMPLIED

engineTypeId CDATA #REQUIRED

enabled      (true | false)

label        CDATA #IMPLIED

id           CDATA #REQUIRED>

Anger en konkret förekomst av en viss sökmotortyp. Förekomsten kan vara bunden till produkten så att den bara visas när produkten är aktiv. Motorn kan ha en separat etikett och beskrivning. Om den inte anges används motortypsdata. Slutligen definierar varje motortyp en giltig uppsättning parametrar som kan överföras till den för att konfigurera den. Motorer kan ange värden för de här parametrarna.



<!ELEMENT param EMPTY>

<!ATTLIST param

name  CDATA #REQUIRED

value CDATA #REQUIRED>

en valfri parameter som används till att konfigurera den här förekomsten av en sökmotortyp. Ogiltiga parametrar definieras av motortypen.



Följande är ett exempel på hjälpsökningsutökningen:

   

<extension point=

"org.eclipse.help.ui.searchEngine"

>

<engineType scopeFactory=

"com.example.xyz.XYZScopeFactory"

label=

"XYZ-sökning"

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>

<engine enabled=

"true"

engineTypeId=

"com.example.xyz.search.XYZSearch"

id=

"com.example.xyz.XYZSearch"

label=

"XYZ-sökning"

>

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

Attributet class för elementet engineType måste tillhandahålla ett fullständigt namn på den klass som implementerar org.eclipse.help.search.ISearchEngine. Attributet pageClass måste tillhandahålla ett fullständigt namn på den klass som utökar org.eclipse.help.ui.RootScopePage. Attributet scopeFactory måste tillhandahålla ett fullständigt namn på den klass som implementerar org.eclipse.help.ui.ISearchScopeFactory. Attributet class för elementet subpage måste tillhandahålla ett fullständigt namn på den klass som implementerar org.eclipse.help.ui.ISearchScopePage.

Insticksprogram för hjälpanvändargränssnitt tillhandahåller sökmotortyper för sökning i lokal hjälpdokumentation och på InfoCenter och Internet, samt en lokal förekomst av hjälpsökmotorn. Den förekomsten accepterar inte parametrar och har inget produkt-ID och visas därför i alla produkter.

Produkter kan skapa konkreta förekomster av InfoCenter- och webbsökningar genom att använda motor-ID:t och de obligatoriska parametrarna.

InfoCenter-motortypen har motor-ID:t org.eclipse.help.ui.infoCenter och accepterar en parameter-url som pekar på fjärrservern där InfoCenter är installerat. Resultat visas på samma sätt som det lokala hjälpresultatet.

Webbsökmotortypen har motor-ID:t org.eclipse.help.ui.web och accepterar en parameter-url representerar en konkret sökfråga med den faktiska söksträngen ersätts med en ersättningssymbol '{expression}', som i följande exempel:

http://eclipse.org/search/search.cgi?q={expression}&ul=&ps=20&m=all

Webbsökresultat visas som en länk som öppnas i webbläsaren med söksträngen utbytt i url-parametern.