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>