Participantes de búsqueda de Lucene

org.eclipse.help.base.luceneSearchParticipants

3.2

Este punto de extensión deberá utilizarse para añadir el contenido del documento al índice de búsqueda de Lucene. Hay dos casos en los que será deseable añadir un participante de búsqueda:
  1. Para indexar documentos registrados con la TOC del sistema de ayuda que no forman parte del formato HTML (por ejemplo XML.) En este caso, el participante debe declarar las extensiones de archivo que puede manejar. Se le llamará para indexar cada documento coincidente. En este caso, el participante tiene el ámbito del plug-in.
  2. Para indexar los documentos fuera de la TOC del sistema de ayuda. En este caso, al participante se le dará una opción para indexar todos los documentos que conoce de una vez. Además, se delegará en el participante la tarea de abrir el resultado de la búsqueda porque el sistema de ayuda no sabrá cómo abrir los documentos fuera de la TOC. En este caso, el participante tiene un ámbito global.

Los participantes de búsqueda están asociados al plug-in en el que aparece la extensión. Para poder reutilizar el participante en otros plug-ins, debe utilizarse binding para hacer referencia a estos. Esta estrategia evita que un plug-in imponga su participante en todo el producto para las extensiones de archivo con las que se registró. Al añadir una referencia explícita, el plug-in declara que permite que el participante de búsqueda referido maneje la indexación de los documentos con esas extensiones. Para los documentos que no forman parte de la TOC, no existe ese peligro. Por esta razón, son globales y no debe utilizarse binding.

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


A continuación figura una utilización de ejemplo del punto de extensión:

  

<extension point=

"org.eclipse.help.base.luceneSearchParticipant"

>

<searchParticipant id=

"org.eclipse.myGlobalParticipant"

name=

"Participante global"

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>

La clase del participante de búsqueda proporcionada debe ampliar la clase abstracta org.eclipse.help.search.LuceneSearchParticipant.

El sistema de ayuda proporciona el participante de búsqueda para los archivos XHTML (extensión xhtml.) Los plug-ins que tienen documentos XHTML dinámicos como parte del TOC deben enlazar con este participante utilizando el elemento binding y org.eclipse.help.base.xhtml como el id participante destino.