Obtener metadatos por consulta de lucene

cancel
Showing results for 
Search instead for 
Did you mean: 
baskeyfield
Member II

Obtener metadatos por consulta de lucene

Muy buenas,

Estoy usando webservices de Alfresco para obtener resultados en consultas de lucene. "Por defecto" lucene te devuelve el path del elemento en cuestión, pero no sus metadatos, es decir, ni su nombre, ni su autor, descripción, etc.

He visto que el tercer parámetro que se le pasa a la consulta es el de "includeMetadata":
repositoryService.query(STORE, query, true);

Pero ya sea false o true los resultados son los mismos, parece que esto no funciona correctamente.

Por otra parte, he visto en otros post que para obtener metadatos lo que hacen es una segunda consulta por cada nodo, pero esto es bastante ineficiente y tarda bastante más en obtener los resultados.

¿Alguien ha tenido este problema? ¿Como obteneis vosotros los metadatos tras una consulta?

Un saludo y gracias!
1 Reply
baskeyfield
Member II

Re: Obtener metadatos por consulta de lucene

Me auto respondo, la forma óptima para obtener los metadatos es esta:

Query query = new Query("lucene","+PATH:\"/app:company_home//*\"");
        Store STORE = new Store(Constants.WORKSPACE_STORE, "SpacesStore");       
       
        Node [] nodes = null;
        nodes = WebServiceFactory.getRepositoryService().get(new Predicate(null,STORE,query));
       
        if (null != nodes){
            NamedValue[] props = null;
            for (final Node node : nodes) {
               props = node.getProperties();
               for(NamedValue prop : props) {
                 
                  if(prop.getName().endsWith(Constants.PROP_NAME) == true) {                  
                     System.out.println(prop.getValue());
               }
            }
            }
}

Un saludo.