AnsweredAssumed Answered

Recuperar Resultados de una query

Question asked by sgdiaz on Aug 17, 2009
Latest reply on Aug 17, 2009 by sgdiaz
Hola buenos dias,

Es la primera vez que escribo al foro y espero que podais ayudarme.Intentare explicarme lo mejor posible.

Estoy desarrollando una aplicacion java que se comunica con Alfresco mediante webservices.Esta aplicacion tiene dos funcionalidades basicas:
1-Añadir contenido Alfresco
2-Recuperar contenido de Alfresco

Para el primer punto no he tenido ningun problema siguiendo los ejemplos del SQK de Alfresco.

Para el segundo punto tambien he intentado seguir los ejemplos y parece ir todo correcto hasta que intento visualizar los resultados de la consulta que lanzo:


// Display the results
                 ResultSet resultSet = queryResult.getResultSet();
                 ResultSetRow[] rows = resultSet.getRows();
               
                 if (rows != null)
                 {
                     // Get the infomation from the result set
                     for(ResultSetRow row : rows)
                     {
                       
                         String nodeId = row.getNode().getId();
                         ContentResult contentResult = new ContentResult(nodeId);
                        
                         for (NamedValue namedValue : row.getColumns())
                         {
                             if (namedValue.getName().endsWith(Constants.PROP_CREATED) == true)
                             {
                                 contentResult.setCreateDate(namedValue.getValue());
                             }
                             else if (namedValue.getName().endsWith(Constants.PROP_NAME) == true)
                             {
                                 contentResult.setName(namedValue.getValue());
                             }
                             else if (namedValue.getName().endsWith(Constants.PROP_DESCRIPTION) == true)
                             {
                                 contentResult.setDescription(namedValue.getValue());  
                             }
                             else if (namedValue.getName().endsWith(Constants.PROP_CONTENT) == true)
                             {
                                 // We could go to the content service and ask for the content to get the URL but to save time we
                                 // might as well dig the content URL out of the results.                       
                                 String contentString = namedValue.getValue();
                                 String[] values = contentString.split("[|=]");
                                 contentResult.setUrl(values[1]);
                             }
                         }
                        
                         results.add(contentResult);
                     }

He de decir que busco los contenidos de un determinado autor y la query me devuelve tantas filas como espero pero cuando recorro el resulset preguntando por quien lo ha creado ,cual es el nombre ,la descripcion etc … nunca pasa por esos if por lo tanto no puedo recoger los valores de esas propiedades.

En principio no se que podra ser pero lo unico que se me ocurre es que la query este mal a pesar de que haciendo pruebas siempre me devuelve tantas filas como espero,es decir, si tengo 3 documentos para el autor 'X' me devuelve esas 3 filas, si tengo 5 pues 5 sino hay ningun documento para ese autor pues no me recupera ninguna fila.

Mi consulta es la siguiente:


Query query = new Query(Constants.QUERY_LANG_LUCENE, "@cm\\:author:" + searchValue);
// Execute the query
QueryResult queryResult = repositoryService.query(STORE, query, false);


Y estoy buscando desde el directotio raiz de company_home


Un saludo y muchas gracias.

Outcomes