Простой поиск

Самым простым способом создания поискового запроса является применение метода RAMSession.createAssetQuery(String). В этот метод можно передавать те же строки, что и в поле ввода клиента Eclipse или веб-клиента. Кроме того, можно вставить ярлык поиска, отображаемый под полем Поиск в веб-клиенте.

Вид ярлыка поиска в веб-клиенте.

В клиенте Eclipse ярлык поиска можно получить командой Скопировать в буфер обмена выпадающего меню на панели поиска ресурса.

Метод createAssetQuery возвращает объект RAMAssetQueryBuilder приведенный к типу объекта SeachQuery. Этот объект можно передать в метод RAMSession.getAssets(SearchQuery), который возвращает объект RAMSearchResult, приведенный к типу объекта SearchResult. Из объекта SearchResult можно получить информацию об общем количестве ресурсов, соответствующих критериям поиска и список объектов RAMAsset данной страницы результатов.

Ниже приведен пример простого поиска всех ресурсов, содержащих слова "Rational Asset Manager" и "javadoc":

                SearchQuery query = session.createAssetQuery("Rational Asset Manager javadoc");
                SearchResult searchResult = session.getAssets(query);
                RAMAssetSearchResult[] assets = (RAMAssetSearchResult[])searchResult.getAssetSearchResults();

Динамические результаты поиска

В режиме синхронизированного (динамического) поиска результаты поиска синхронизированы с базой данных. Флаг SYNCHRONIZED_SEARCH_FLAG позволяет включить динамический поиск.

В случае применения синхронизированного поиска возвращаемые результаты совпадают с содержимым базы данных на момент отправки запроса. Синхронизированный поиск может выполняться дольше обычного поиска, поскольку запрос ожидает синхронизации индекса с базой данных, если недавно в систему были внесены изменения.

Пример синхронного поиска:

                RAMAssetQueryBuilder query = (RAMAssetQueryBuilder)session.createAssetQuery("Synchronized Search Test");
                query.setSearchModes(SearchQuery.SYNCHRONIZED_SEARCH_FLAG);
                SearchResult searchResult = session.getAssets(query);

Комментарии