Søkemotor

org.eclipse.help.ui.searchEngine

3.1

Dette utvidelsespunktet brukes til innplugging av søkedeltakere i det forente søket i hjelpen. 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 som inneholder denne 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 angitte 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 oppgir ønsket utføring. Brukere kan dessuten legge til egne forekomster av de registrerte motorene og konfigurere dem fritt.

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

definerer en bestemt type av en søkemotor. Søkemotortyper kan brukes til å opprette konkrete motorforekomster enten av brukeren eller forhåndslastet av produktet. For å være nyttige må motortyper være konfigurerbare slik at flere motorer kan opprettes ved hjelp av en enkelt motortype.



<!ELEMENT description (#PCDATA)>

en kort beskrivelse av søkemotoren



<!ELEMENT subpage EMPTY>

<!ATTLIST subpage

id       CDATA #REQUIRED

label    CDATA #REQUIRED

class    CDATA #IMPLIED

category CDATA #REQUIRED>

en underordnet side for rotomfangets preferanseside som er definert i engine-elementet. Hvis motorattributtet pageClass ikke er definert, blir delsider ignorert.



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

<!ATTLIST engine

productId    CDATA #IMPLIED

engineTypeId CDATA #REQUIRED

enabled      (true | false)

label        CDATA #IMPLIED

id           CDATA #REQUIRED>

Oppgir en konkret forekomst av en bestemt søkemotortype. Forekomster kan bindes til produktet slik at de bare vises når dette produktet er aktivt. Motorer kan ha sin egen etikett og beskrivelse. Hvis det ikke er oppgitt, brukes motortypens data. Og endelig definerer motortypen et gyldig sett av parametere som kan sendes til den for å konfigurere den. Motorer kan oppgi verdier for disse parameterne.



<!ELEMENT param EMPTY>

<!ATTLIST param

name  CDATA #REQUIRED

value CDATA #REQUIRED>

en valgfri parameter som brukes til å konfigurere denne forekomsten av søkemotortypen. Gyldige parametere defineres av motortypen.



Nedenfor finner du et eksempel på hjelpesøkutvidelsen:

   

<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}&amp;ul=&amp;ps=20&amp;m=all"

>

</param>

</engine>

</extension>

Attributtet class for elementet engineType må oppgi et fullt kvalifisert navn navn på klassen som implementerer org.eclipse.help.search.ISearchEngine. Attributtet pageClass må oppgi et fullt kvalifisert navn på klassen som utvider org.eclipse.help.ui.RootScopePage. Attributtet scopeFactory må oppgi et fullt kvalifisert navn på klassen som implementerer org.eclipse.help.ui.ISearchScopeFactory. Attributtet class for elementet subpage må oppgi et fullt kvalifisert navn på en klasse som implementerer org.eclipse.help.ui.ISearchScopePage.

Plugin-modulen for brukergrensesnittet inneholder søkemotortyper for lokal hjelpedokumentasjon, informasjonssenter og web-søk, i tillegg til forekomster av lokal hjelpesøkemotor. Denne forekomsten godtar ikke parametere og den har ingen produkt-ID, og vil dermed forekomme i alle produkter.

Produkter kan opprette konkrete forekomster av informasjonssenter- og web-søk ved å bruke motor-IDen og de nødvendige parameterne.

Informasjonssenterets motortype har motor-IDen org.eclipse.help.ui.infoCenter, og godtar en parameter-url som peker på den eksterne serveren der informasjonssenteret er installert. Resultater vises på samme måte som de lokale hjelperesultatene.

Motortypen for web-søk har motor-IDen org.eclipse.help.ui.web, og godtar en parameter-url som representerer en konkret søkespørring med den faktiske søkestrengen erstattet med et erstatningssymbol '{expression}', som i det følgende eksempelet:

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

Web-søkeresultatene vises som en link som åpner nettleseren med søkestrenge erstattet i url-parameteren.