Les moteurs de recherche définis ici ne s'afficheront automatiquement comme participants à la recherche fédérée qu'après la liaison du produit du moteur, à moins que l'attribut
productId
ne soit pas défini. Concernant les moteurs qui le définissent, seuls ceux liés à un produit particulier s'afficheront lorsque ce produit est en cours d'exécution.
Les moteurs de recherche peuvent simplement composer une URL et fournir une seule occurrence contenant cette URL sous forme d'attribut href. Les moteurs de recherche les plus courants pour lesquels le support API nécessite une licence peuvent être connectés de cette manière. A l'autre extrémité du spectre, les moteurs de recherche peuvent communiquer avec le serveur et recevoir des occurrences individuelles contenant des informations telles que le libellé, le href, une brève description, le score, etc. Le moteur d'aide local peut produire des occurrences de cette manière.
Indépendamment du mécanisme de recherche, les moteurs peuvent fournir différents paramètres de portée de recherche au moyen des pages de préférences JFace. Ces pages s'affichent lorsque le lien 'Paramètres avancés' est suivi à partir de la vue Aide. Outre les pages de préférences racine définies avec le moteur, des sous-pages de préférences supplémentaires peuvent être connectées en vue de définir des paramètres plus avancés.
Les paramètres de portée sont chargés et stockés au moyen des objets IPreferenceStore
. Les paramètres de portée de tous les moteurs sont regroupés dans un
ensemble de portées nommé. A la première ouverture, l'ensemble de portées par défaut ('Valeur par défaut') est créé, mais les utilisateurs peuvent définir davantage d'ensembles de portées et basculer de l'un vers l'autre.
Le support de recherche fédérée faisant partie du plug-in org.eclipse.help.base
, une fabrique est requise pour créer des objets de portée de recherche à partir des données du magasin de préférences. Les clients qui se connectent aux pages de préférences de portée doivent se connecter également aux fabriques de portées.
Les moteurs définis dans ce point d'extension ne s'affichent pas dans l'interface par défaut. Ce qui s'affiche, c'est une instance concrète de moteur de recherche qui peut être modifiée individuellement. Les produits peuvent préconfigurer le système d'aide au moyen de plusieurs instances des types de moteurs enregistrés, lesquelles peuvent être paramétrisées en vue de se comporter de la manière souhaitée. En outre, les utilisateurs peuvent ajouter leurs propres instances de moteurs enregistrés et les configurer comme ils le souhaitent.
<!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>
définit un type de moteur de recherche spécifique. Le type de moteur peut être utilisé pour créer des instances de moteur concrètes par l'utilisateur ou préchargées par le produit. Pour être utiles, les types de moteur doivent être configurables de sorte qu'un nombre de moteurs puissent être créés à l'aide d'un seul et même type de moteur.
org.eclipse.help.search.ISearchEngine
. La fonction de la classe est d'effectuer une recherche à partir de la requête et de la portée indiquées.org.eclipse.help.ui.RootScopePage
. Cette page met le commutateur principal du moteur de recherche en attente et sert généralement à héberger les widgets permettant de limiter la portée de la recherche pour le moteur.org.eclipse.help.ui.ISearchScopeFactory
. La fonction de la fabrique consiste à créer des objets ISearchScope à partir des paramètres stockés dans la classe IPreferenceStore
. Si pageClass
est indiqué, la fabrique de la portée doit également être spécifiée.<!ELEMENT description (#PCDATA)>
brève description du moteur de recherche
<!ELEMENT subpage EMPTY>
<!ATTLIST subpage
id CDATA #REQUIRED
label CDATA #REQUIRED
class CDATA #IMPLIED
category CDATA #REQUIRED>
Page enfant de la page de préférences de la portée racine définie dans l'élément engine
. Si l'attribut pageClass
n'est pas défini, les sous-pages seront ignorées.
org.eclipse.help.ui.ISearchScopePage
.<!ELEMENT engine (description? , param*)>
<!ATTLIST engine
productId CDATA #IMPLIED
engineTypeId CDATA #REQUIRED
enabled (true | false)
label CDATA #IMPLIED
id CDATA #REQUIRED>
Indique une instance concrète d'un type de moteur de recherche. L'instance peut être associée au produit afin d'indiquer uniquement lorsque ce produit est actif. Le moteur peut posséder un libellé et une description propres. Si rien n'est indiqué, les données du type de moteur seront utilisées. Enfin, chaque type de moteur définit un ensemble de paramètres valide pouvant être transmis au moteur pour le configurer. Les moteurs peuvent indiquer les valeurs de ces paramètres.
org.eclipse.core.runtime.Platform.getProduct()
). Si rien n'est indiqué, le moteur apparaîtra pour tous les produits.true
, le moteur sera activé au départ. Les utilisateurs peuvent remplacer cette valeur dans l'interface utilisateur.<!ELEMENT param EMPTY>
<!ATTLIST param
name CDATA #REQUIRED
value CDATA #REQUIRED>
paramètre facultatif utilisé pour configurer cette instance d'un type de moteur de recherche. Les paramètres valides sont définis par le type de moteur.
<extension point=
"org.eclipse.help.ui.searchEngine"
>
<engineType scopeFactory=
"com.example.xyz.XYZScopeFactory"
label=
"Recherche XYZ"
class=
"com.example.xyz.search.XYZSearch"
icon=
"icons/etool16/xyzsearch.gif"
pageClass=
"com.example.xyz.search.XYZSearchPage"
id=
"com.example.xyz.XYZSearch"
>
<description>
Les instances de Recherche XYZ procèdent aux recherches dans le site XYZ.</description>
</engineType>
<engine enabled=
"true"
engineTypeId=
"com.example.xyz.search.XYZSearch"
id=
"com.example.xyz.XYZSearch"
label=
"Recherche XYZ"
>
</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}&ul=&ps=20&m=all"
>
</param>
</engine>
</extension>
class
de l'élément engineType
doit indiquer un nom qualifié complet de la classe qui implémente org.eclipse.help.search.ISearchEngine
. L'attribut pageClass
doit indiquer un nom qualifié complet de la classe qui étend org.eclipse.help.ui.RootScopePage
. L'attribut scopeFactory
doit indiquer un nom qualifié complet de la classe qui implémente org.eclipse.help.ui.ISearchScopeFactory
.
L'attribut class
de l'élément subpage
doit indiquer un nom qualifié complet d'une classe qui implémente org.eclipse.help.ui.ISearchScopePage
.
Les produits peuvent créer des instances concrètes de centres de documentation et de recherches sur le Web à l'aide de leur ID moteur et des paramètres nécessaires.
Le type de moteur de centre de documentation comporte l'élément engineId org.eclipse.help.ui.infoCenter
et accepte un paramètre url
qui pointe
sur le serveur distant sur lequel le centre de documentation est installé. Les résultats s'affichent de la même manière que ceux de l'aide locale.
Le type de moteur de recherche sur le Web comporte l'ID moteur org.eclipse.help.ui.web
et accepte un paramètre url
. Celui-ci représente une requête de moteur concrète, dont la chaîne de recherche actuelle est remplacée par un symbole de remplacement '{expression}', comme dans l'exemple ci-dessous :
http://eclipse.org/search/search.cgi?q={expression}&ul=&ps=20&m=allLes résultats de la recherche sur le Web s'affichent sous la forme d'un lien qui ouvre le navigateur Web à l'aide de la chaîne de recherche remplacée dans le paramètre
url
.
Copyright (c) 2000, 2005 IBM Corporation and others.
All rights reserved. Ce programme et les produits associés sont
distribués sous licence v1.0 et disponibles à
l'adresse suivante :
http://www.eclipse.org/legal/epl-v10.html