Новый объединенный поиск информации использует понятия типов службы поиска и служб поиска. Тип службы - шаблон, на основе которого могут быть созданы конкретные службы (путем параметризации).
Новые типы служб поставляются через org.eclipse.help.ui.searchEngine:
Эта точка расширения служит для подключения служб, используемых в поиске информации. Каждая служба поиска настраивается отдельно. При поиске каждая служба запускается в виде фонового задания, а результаты собираются на панели Справка.<extension point="org.eclipse.help.ui.searchEngine"> <engineType scopeFactory="com.example.xyz.XYZScopeFactory" label="Поиск XYZ" class="com.example.xyz.search.XYZSearch" icon="icons/etool16/xyzsearch.gif" pageClass="com.example.xyz.search.XYZSearchPage" id="com.example.xyz.XYZSearch"> <description> производит поиск по сайту XYZ. </description> </engineType>
Службы поиска, определенные здесь, будут задействованы как участники объединенного поиска только при наличии привязки к текущему продукту, либо при отсутствии атрибута productId
. Так, для данного продукта запускаются службы, привязанные к нему, и службы, не привязанные ни к одному продукту.
Службы поиска могут генерировать один URL возвращать его в href
результата. Популярные службы поиска, для поддержки API которых требуется лицензия, можно подключить так. Службы поиска связываются с сервером и получают результаты с меткой, ссылкой, кратким описанием, счетом и т.д. Схема работы локальной службы справки такая же.
Независимо от механизма поиска, службы могут иметь возможность настройки с помощью страниц параметров JFace. К ним можно перейти по ссылке 'Дополнительные параметры' на панели Справка. К корневым страницам параметров можно подключать подстраницы с дополнительными параметрами.
Параметры области поиска загружаются и сохраняются с помощью объектов IPreferenceStore
. Параметры для всех служб собраны вместе в наборе областей. При первом открытии создается стандартный набор областей ('Default'), но пользователь может создавать и использовать свои наборы.
Т.к. поддержка объединенного поиска входит в модуль org.eclipse.help.base
, для создания объектов области поиска на основе данных хранилища параметров требуется фабрика. Клиенты, подключающие страницы параметров области поиска, должны также подключать фабрики области поиска.
Службы, определенные в этой точке расширения, по умолчанию не присутствуют в пользовательском интерфейсе. В нем показываются конкретные экземпляры служб поиска, которые могут быть отдельно изменены. Продукты могут поставлять предопределенные экземпляры зарегистрированных типов служб, возможно параметризованных. Кроме этого, пользователь может добавлять собственные экземпляры зарегистрированных служб:
<engine enabled="true" engineTypeId="com.example.xyz.search.XYZSearch" id="com.example.xyz.XYZSearch" label="Поиск 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>