Nowe stowarzyszone wyszukiwanie informacji w systemie pomocy obejmuje pojęcia typów mechanizmów wyszukiwania oraz mechanizmów wyszukiwania. Typem mechanizmu jest metamechanizm, z którego można utworzyć przy użyciu parametryzacji kilka konkretnych mechanizmów wyszukiwania.
Nowe typy mechanizmu wyszukiwania są wnoszone za pośrednictwem punktu rozszerzenia org.eclipse.help.ui.searchEngine:
Ten punkt rozszerzenia jest używany do podłączania uczestników wyszukiwania w wyszukiwaniu informacji. Każdy mechanizm wyszukiwania można skonfigurować indywidualnie. Po zainicjowaniu wyszukiwania, każdy z mechanizmów wyszukiwania jest uruchamiany jako zadanie w tle, a wyniki są natychmiast zestawiane w widoku pomocy pod zapytaniem.<extension point="org.eclipse.help.ui.searchEngine"> <engineType scopeFactory="com.example.xyz.XYZScopeFactory" label="Wyszukiwanie XYZ" class="com.example.xyz.search.XYZSearch" icon="icons/etool16/xyzsearch.gif" pageClass="com.example.xyz.search.XYZSearchPage" id="com.example.xyz.XYZSearch"> <description> Instancje wyszukiwania XYZ w serwisie XYZ. </description> </engineType>
Mechanizmy wyszukiwania zdefiniowane w tym miejscu nie będą automatycznie wyświetlane jako
uczestnicy wyszukiwania stowarzyszonego, dopóki nie zostanie ustanowione powiązanie między
mechanizmem a produktem, chyba że atrybut productId nie zostanie zdefiniowany.
W przypadku mechanizmów, w których atrybut ten został zdefiniowany, po uruchomieniu produktu
zostaną wyświetlone tylko mechanizmy wyszukiwania powiązane z określonym produktem.
Mechanizmy wyszukiwania mogą składać adresy URL, udostępniając tylko jedno trafienie
zawierające ten adres URL w postaci odwołania href. W taki sposób można
podłączać popularne mechanizmy wyszukiwania, dla których obsługa interfejsu API wymaga licencji.
Innym rozwiązaniem jest komunikowanie się mechanizmów wyszukiwania z serwerem i odbieranie
pojedynczych trafień zawierających takie informacje, jak etykieta, odwołanie href, krótki
opis, ocena dopasowania itp. W ten sposób może przedstawiać trafienia lokalny mechanizm pomocy.
Bez względu na mechanizm wyszukiwania mechanizmy mogą udostępniać różnorodne ustawienia zasięgu wyszukiwania, używając stron preferencji pakietu JFace. Te strony są wyświetlane, gdy w widoku pomocy zostanie wybrany odsyłacz Ustawienia zaawansowane. Oprócz głównych stron preferencji zdefiniowanych wraz z mechanizmem, można podłączyć dodatkowe podstrony preferencji zapewniające dostęp do bardziej zaawansowanych ustawień.
Ustawienia zasięgu są ładowane i przechowywane przy użyciu obiektów
IPreferenceStore. Ustawienia zasięgu dla wszystkich mechanizmów są
zgrupowane w nazwanym zestawie zasięgu. Przy pierwszym otwarciu
tworzony jest domyślny zestaw zasięgu, ale użytkownicy mogą definiować
więcej zestawów zasięgu i przełączać się między nimi.
Ponieważ obsługa wyszukiwania stowarzyszonego jest częścią modułu dodatkowego
org.eclipse.help.base, do utworzenia obiektów zasięgu wyszukiwania
na podstawie danych ze składnicy preferencji niezbędna jest fabryka. Klienci podłączający
strony preferencji zasięgu muszą podłączać również fabryki zasięgu.
Mechanizmy zdefiniowane w tym punkcie rozszerzenia nie są domyślnie wyświetlane w interfejsie użytkownika. Wyświetlane są natomiast konkretne instancje mechanizmów wyszukiwania, które można indywidualnie modyfikować. Produkty mogą wstępnie konfigurować w systemie pomocy kilka instancji zarejestrowanych typów mechanizmów, które mogą być sparametryzowane w celu działania w wymagany sposób. Ponadto użytkownicy mogą dodawać własne instancje zarejestrowanych mechanizmów i konfigurować je w zależności od potrzeb:
<engine
enabled="true"
engineTypeId="com.example.xyz.search.XYZSearch"
id="com.example.xyz.XYZSearch"
label="Wyszukiwanie 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>