Участники поиска Lucene

org.eclipse.help.base.luceneSearchParticipants

3.2

Эта точка расширения служит для добавления содержимого документов в индекс поиска Lucene. Существует два случая, в которых может потребоваться добавить участника поиска:
  1. Для индексации зарегистрированных оглавлением справочной системы документов, которые не имеют формат HTML (например, XML). В этом случае участник должен объявить расширения файлов, которыми он может управлять. Этот участник будет вызываться для индексации всех соответствующих документов. В данном случае участник имеет область действия модуля.
  2. Для индексации документов вне оглавления справочной системы. В этом случае участник сможет проиндексировать все документы, о которых ему известно. Кроме этого, участнику будет передана на выполнение задача открытия результата поиска, поскольку справочной системе неизвестно, каким образом следует открывать документы вне оглавления. В этом случае участник имеет глобальную область действия.

Участники поиска связаны с модулем, в котором появляется расширение. Для повторного использования участника в других модулях для ссылки на него следует использовать binding. Эта стратегия позволяет предотвратить распространения модулем своего участника на весь продукт для расширений файлов, с которыми он был зарегистрирован. Путем добавления явной ссылки модуль объявляет, что он позволяет указанному участнику поиска управлять индексацией документов с такими расширениями. Для документов, не являющихся частью оглавления, такой опасности не существует. По этой причине они являются глобальными, и 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>


Ниже приведен пример использования точки расширения:

  

<extension point=

"org.eclipse.help.base.luceneSearchParticipant"

>

<searchParticipant id=

"org.eclipse.myGlobalParticipant"

name=

"Global Participant"

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>

Поставляемый класс участника поиска должен расширять абстрактный класс org.eclipse.help.search.LuceneSearchParticipant.

Справочная система предоставляет участника поиска для файлов XHTML (расширение xhtml). Модули, содержащие динамические документы XHTML как часть оглавления, должны связываться с этим участником с помощью элемента binding и org.eclipse.help.base.xhtml в качестве ИД целевого участника.