Recherche simple

Le moyen le plus simple de construire une requête de recherche est d'utiliser la méthode RAMSession.createAssetQuery(String). Vous pouvez transmettre à cette méthode toute chaîne que vous taperiez dans la zone de saisie de recherche du client Web ou Eclipse. Vous pouvez également copier-coller un raccourci de recherche à partir de la zone de texte de recherche du client Web.

Copie d'écran d'un raccourci de recherche dans le client Web

Dans le client Eclipse, vous pouvez récupérer un raccourci de recherche en sélectionnant Copier dans le presse-papiers dans le menu de la vue Recherche d'actif.

La méthode createAssetQuery renvoie un objet RAMAssetQueryBuilder transtypé en un objet SeachQuery simplifié. Cet objet peut être passé à la méthode RAMSession.getAssets(SearchQuery), qui renverra un objet RAMSearchResult transtypé en objet SearchResult commun. A partir de cet objet SearchResult, vous pouvez obtenir le nombre total d'actifs qui répondent aux critères de la requête de recherche, avec la liste des objets RAMAsset qui correspondent à cette page de résultats.

Voici un exemple de recherche simple, visant à trouver tous les actifs contenant dans leurs métadonnées les mots Rational Asset Manager et javadoc :

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

Résultats de recherche temps réel

Vous pouvez utiliser la recherche synchronisée, ou temps réel, pour que les résultats de recherche soient synchronisés avec la base de données. Pour activer la recherche en temps réel, utilisez l'indicateur SYNCHRONIZED_SEARCH_FLAG.

Avec la recherche synchronisée, les résultats renvoyés de l'index correspondent au contenu de la base de données au moment où la requête a été soumise. Les recherches synchronisées peuvent prendre plus de temps que les recherches normales car la requête doit attendre que l'index soit synchronisé avec la base de données s'il y a eu des mises à jour récentes du système.

Voici un exemple de recherche synchronisée :

                RAMAssetQueryBuilder query = (RAMAssetQueryBuilder)session.createAssetQuery("Test de recherche synchronisée");
                query.setSearchModes(SearchQuery.SYNCHRONIZED_SEARCH_FLAG);
                SearchResult searchResult = session.getAssets(query);

Commentaire