In verband met de nieuwe federatieve-informatiezoekfunctie in het Help-systeem vindt u hier enige uitleg over zoekenginetypen en zoekengines. Een enginetype is een meta-engine op basis waarvan een aantal concrete zoekengines kunnen worden gemaakt door parametrisering.
Nieuwe enginetypen worden aangeleverd met behulp van het extensiepunt org.eclipse.help.ui.searchEngine:
Dit extensiepunt wordt gebruikt om zoekopdrachtdeelnemers toe te voegen aan de informatiezoekopdracht. Elke zoekengine kan afzonderlijk worden geconfigureerd. Wanneer de zoekopdracht wordt gestart, wordt elke zoekengine uitgevoerd als achtergrondtaak. De resultaten worden gesorteerd en direct onder de query weergegeven in de Help-view.<extension point="org.eclipse.help.ui.searchEngine"> <engineType scopeFactory="com.example.xyz.XYZScopeFactory" label="XYZ Search" class="com.example.xyz.search.XYZSearch" icon="icons/etool16/xyzsearch.gif" pageClass="com.example.xyz.search.XYZSearchPage" id="com.example.xyz.XYZSearch"> <description> Instances van XYZ Search zoeken in de site XYZ. </description> </engineType>
De zoekengines die hier zijn gedefinieerd worden pas automatisch als federatieve
zoekopdrachtdeelnemers afgebeeld wanneer een engine-product-binding tot stand is gebracht, tenzij het kenmerk
productId
niet gedefinieerd wordt. Engines waarvoor dit kenmerk wel is gedefinieerd en die
gebonden zijn aan een bepaald product, worden alleen afgebeeld wanneer dat product wordt uitgevoerd.
Zoekengines kunnen eenvoudig een URL samenstellen en slechts één treffer aanleveren met die
URL als href
. Populaire zoekengines waarvoor licenties nodig zijn om door de API
te kunnen worden ondersteund, kunnen op deze wijze worden ingevoegd. Aan de andere kant
kunnen zoekengines communiceren met de server en afzonderlijke treffers ontvangen met
gegevens als een label, href, korte beschrijving, score, enzovoort. De lokale Help-engine
kan op die manier treffers genereren.
Ongeacht het zoekmechanisme kunt u diverse zoekbereikinstellingen voor engines configureren op de JFace-voorkeurenpagina's. Deze pagina's worden afgebeeld wanneer u op de link 'Geavanceerde instellingen' in de Help-view klikt. Naast de basisvoorkeurenpagina's die met de engine worden gedefinieerd, kunnen aanvullende subvoorkeurenpagina's voor meer geavanceerde instellingen worden ingevoegd.
Bereikinstellingen worden geladen en opgeslagen met IPreferenceStore
-objecten.
Bereikinstellingen voor alle engines worden gegroepeerd in een benoemde bereikset.
De eerste keer wordt een standaardbereikset ('Default') gemaakt, maar gebruikers kunnen
meer bereiksets definiëren en vervolgens van set wisselen.
Omdat federatieve zoekondersteuning deel uitmaakt van de plugin org.eclipse.help.base
,
is er een factory nodig om zoekbereikobjecten te maken op basis van de gegevens in het
voorkeurenarchief. Clients die bereikvoorkeurenpagina's willen invoegen moeten ook bereikfactory's invoegen.
Engines die in dit extensiepunt worden gedefinieerd, worden niet standaard in de gebruikersinterface afgebeeld. Wat hier is afgebeeld, is een concrete instance van een zoekengine die afzonderlijk kan worden aangepast. In producten kan het Help-systeem vooraf worden geconfigureerd met een aantal instances van de geregistreerde enginetypen, die mogelijk geparametriseerd zijn om te worden uitgevoerd volgens een gewenst gedrag. Daarnaast kunnen gebruikers zelf instances van de geregistreerde engines toevoegen en deze naar wens configureren:
<engine enabled="true" engineTypeId="com.example.xyz.search.XYZSearch" id="com.example.xyz.XYZSearch" label="XYZ Search"> </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>