Para realizar una búsqueda similar a la búsqueda avanzada en clientes web o Eclipse, puede añadir campos de consulta a RAMAssetQueryBuilder utilizando el método RAMAssetQueryBuilder.addQueryField(java.lang.String, java.lang.String). Hay campos para Última fecha de modificación, GUID, Descripción, Nombre de activo, Puntuación, Propietario, Estado y Versión. De forma predeterminada, todos los campos de búsqueda están conectados por "and" (la búsqueda sólo devolverá los resultados que coincidan con todos los campos de consulta). Por ejemplo, para buscar activos con el nombre Rational Asset Manager Client API Javadoc y la versión 7.1, realice la búsqueda siguiente:
// Buscar exclusivo
queryBuilder = new RAMAssetQueryBuilder(session);
queryBuilder.addQueryField(queryBuilder.QUERY_FIELD_NAME, "Rational Asset Manager Client API Javadoc");
queryBuilder.addQueryField(queryBuilder.QUERY_FIELD_VERSION, "7.1");
searchResult = session.getAssets(queryBuilder);
Para cambiar la forma en que se tratan los cambios, hay un método RAMQueryBuilder.setMatchAnyField(boolean) que se puede utilizar para aplicar OR entre los campos. Por ejemplo, para buscar activos que tengan la versión 7.0, 7.0.0.2 o 7.1, realice la búsqueda siguiente:
//Buscar inclusivo
queryBuilder = new RAMAssetQueryBuilder(session);
queryBuilder.addQueryField(queryBuilder.QUERY_FIELD_VERSION, "7.0");
queryBuilder.addQueryField(queryBuilder.QUERY_FIELD_VERSION, "7.0.0.2");
queryBuilder.addQueryField(queryBuilder.QUERY_FIELD_VERSION, "7.1");
queryBuilder.setMatchAnyField(true);
searchResult = session.getAssets(queryBuilder);
Junto con los campos de consulta de nombre y valor, también puede crear campos de consulta de texto que se conectarán con "and" u "or" con sus otros campos de consulta, utilizando el método RAMAssetQueryBuilder.addQueryTextField(java.lang.String).
//Buscar en la API con comodines
queryBuilder = new RAMAssetQueryBuilder(session);
queryBuilder.addQueryTextField("API*");
queryBuilder.addQueryField(queryBuilder.QUERY_FIELD_VERSION, "7.1");
searchResult = session.getAssets(queryBuilder);
Los operadores AND_OPERATOR y OR_OPERATOR se puede utilizar para agrupar consultas más complejas. Por ejemplo, para crear una consulta de activos que contengan el nombre API y tengan la versión 7.0, 7.0.0.2 o 7.1, haga lo siguiente:
//Consulta avanzada
nonEscapedNameQuery = queryBuilder.createQueryFieldText(
queryBuilder.QUERY_FIELD_NAME, "API*");
queryBuilder.addQueryTextField(nonEscapedNameQuery);
String version71 = queryBuilder.createQueryFieldText(queryBuilder.QUERY_FIELD_VERSION, "7.0");
String version7002 = queryBuilder.createQueryFieldText(queryBuilder.QUERY_FIELD_VERSION, "7.0.0.2");
String version71 = queryBuilder.createQueryFieldText(queryBuilder.QUERY_FIELD_VERSION, "7.1");
String versionQuery = version70 + RAMAssetQueryBuilder.OR_OPERATOR + version7002 + RAMAssetQueryBuilder.OR_OPERATOR + version71;
queryBuilder.addQueryTextField(versionQuery);
searchResult = session.getAssets(queryBuilder);