Lucene-søkedeltakere

org.eclipse.help.base.luceneSearchParticipants

3.2

Dette utvidelsespunktet brukes til å legge til dokumentinnhold i Lucene-søkeindeksen. Det er to tilfeller der du ønsker å legge til en søkedeltaker:
  1. For å indeksere dokumenter som er registrert i hjelpesystemets innholdsfortegnelse, og som ikke er i HTML-format (f.eks. XML). I et slikt tilfelle må deltakeren deklarere filtypene den kan behandle. Den vil bli kalt opp for å indeksere hvert samsvarende dokument. I et slikt tilfelle har deltakeren plugin-omfang.
  2. For å indeksere dokumenter utenfor hjelpesystemets innholdsfortegnelse. I dette tilfellet får deltakeren en sjanse til å indeksere alle dokumenter den kjenner, på en gang. I tillegg får deltakeren delegert oppgaven med å åpne søkeresultatet, for hjelpesystemet vet ikke hvordan det skal åpne dokumenter utenfor innholdsfortegnelsen. I et slikt tilfelle har deltakeren globalt omfang.

Søkedeltakerne er knyttet til plugin-modulen som filtypen blir vist i. Hvis du vil bruke deltakeren om igjen i andre plugin-moduler, utfører du binding for å referere til dem. Dette hindrer en plugin-modul i å påtvinge en deltaker hele produktet for filtypene den er registrert med. Ved å legge til en eksplisitt referanse erklærer plugin-modulen at den tillater at de refererte søkedeltakerne håndterer indekseringen av dokumenter med disse filtypene. For dokumenter som ikke er en del av innholdsfortegnelsen, er det ingen fare med dette. Av den grunn er de globale, og binding brukes ikke.

<!ELEMENT extension (searchParticipant | binding)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT searchParticipant (participant?)>

<!ATTLIST searchParticipant

id          CDATA #REQUIRED

name        CDATA #IMPLIED

icon        CDATA #IMPLIED

participant CDATA #IMPLIED

extensions  CDATA #IMPLIED

headless    (true | false) "false">


<!ELEMENT participant (parameter*)>

<!ATTLIST participant

class CDATA #IMPLIED>


<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>


<!ELEMENT binding EMPTY>

<!ATTLIST binding

participantId CDATA #IMPLIED>


Her er et eksempel på bruk av utvidelsespunkt:

  

<extension point=

"org.eclipse.help.base.luceneSearchParticipant"

>

<searchParticipant id=

"org.eclipse.myGlobalParticipant"

name=

"Global deltaker"

icon=

"icons/mydoc.gif"

participant=

"org.eclipse.myPlugin.myPackage.MyGlobalParticipant"

headless=

"true"

/>

<searchParticipant id=

"org.eclipse.myXYZParticipant"

extensions=

"xyz"

participant=

"org.eclipse.myPlugin.myPackage.MyXYZParticipant"

/>

</extension>

Den oppgitte søkedeltakerklassen må utvide den abstrakte klassen org.eclipse.help.search.LuceneSearchParticipant.

Hjelpesystemet har en søkedeltaker for XHTML-filer (filtype xhtml). Plugin-moduler som har dynamiske XHTML-dokumenter som en del av innholdsfortegnelsen, må binde seg til denne deltakeren med elementet binding og med org.eclipse.help.base.xhtml som måldeltaker-ID.