Lucene 搜索参与者

org.eclipse.help.base.luceneSearchParticipants

3.2

应该使用此扩展点来将文档内容添加到 Lucene 搜索索引中。在下列两种情况下,需要添加搜索参与者:
  1. 要对帮助系统 TOC 中注册的非 HTML 格式(例如 XML)文档建立索引。在这种情况下,参与者必须声明它能够处理的文件扩展名。系统将调用此参与者,以便对每个匹配的文档建立索引。在这种情况下,参与者具有插件作用域。
  2. 对帮助系统 TOC 外部的文档建立索引。在这种情况下,参与者将有机会同时对它所知的所有文档建立索引。此外,由于帮助系统不知道如何打开 TOC 外部的文档,所以将委托参与者执行打开搜索结果这一任务。在这种情况下,参与者具有全局作用域。

搜索参与者与此扩展所在的插件相关联。要在其他插件中重复使用该参与者,应该使用 binding 来引用它们。此策略能够防止插件将其参与者强制用于它注册时所面向的文件扩展名的整个产品。通过添加显式引用,插件声明允许所引用的搜索参与者对具有那些扩展名的文档建立索引。对于 TOC 外部的文档来说,没有这样的危险。因此,它们是全局的,并且不应该使用 binding

<!ELEMENT extension (searchParticipant | binding)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT searchParticipant (participant?)>

<0!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)的搜索参与者。对于 TOC 中包含动态 XHTML 文档的插件来说,必须使用 binding 元素并将 org.eclipse.help.base.xhtml 用作目标参与者标识,从而与此参与者绑定。