I don't know about alfresco, but in general you can limit the properties with the select list. For example SELECT cmis:objectId, cmis:name FROM acme:document
Michael On Sun, May 5, 2013 at 12:05 AM, Mark Streit <[email protected]> wrote: > Hello, > > I know I must be missing something so perhaps someone can help clarify. > > > 1. We are currently using Apache Chemistry 0.8.0 (OpenCmis) quite > successfully thus far, building an application that uses Alfresco 4.1.3 > Enterprise as the repository solution. > 2. Our content model is the OOTB CMIS model with a handful of String and > date properties added using the appropriate xzy_model.xml and extensions > mechanism specific to Alfresco. > 3. We are able to use the CMIS SQL language to retrieve lists of > documents from cmis:Folder objects without any problems. Syntax, for > example, of of one of the queries looks like this: > > > String queryString = "SELECT * FROM acme:document WHERE > IN_FOLDER('workspace://SpacesStore/ad1kjhd5-01fc-43ad-af31-0d7dada9ec57') > ORDER BY acme:category DESC"; > > > The Java code (used for current testing) that sends the query to the > repository looks like this: > > > ItemIterable<QueryResult> queryResult; > > try { > > queryResult = this.cmisSession.*query*(queryString, false, this.* > minimalOperationContext*).getPage(cmisQueryPageLimit); > > } > > > ... > > ... > > > // below is similar to output lines found in Chemistry GettingStarted > samples... > > > if (queryResult != null) { > *LOGGER.info*("***queryResult.getTotalNumItems() > " + > > queryResult.getTotalNumItems()); > int byteCount = 0; > int i = 1; > for (QueryResult qr : queryResult) { > LOGGER.info("--------------------------------------------\n" + i + " , > " + > > qr.getPropertyByQueryName("cmis:objectTypeId").getFirstValue() + " , " > + > > qr.getPropertyByQueryName("cmis:name").getFirstValue() + " , " + > > qr.getPropertyByQueryName("cmis:creationDate").getFirstValue() + " , " > + > > qr.getPropertyByQueryName("cmis:objectId").getFirstValue() + " , " + > > qr.getPropertyByQueryName("acme:category").getFirstValue() + " , " + > > qr.getPropertyByQueryName("acme:subCategory").getFirstValue() + " , " + > > qr.getPropertyByQueryName("cmis:contentStreamFileName").getFirstValue() > + " , " + > > qr.getPropertyByQueryName("cmis:contentStreamMimeType").getFirstValue() > + " , " + > > qr.getPropertyByQueryName("cmis:contentStreamLength").getFirstValue()); > } > > } > > > It was suggested that we might see a performance improvement in searches by > using the OperationContext to reduce the set of properties pulled back on > each cmis:Document instance. > > The OperationContext *minimalOperationContext *was set like this below, > where I am specifying only these few properties of the model to retrieve: > > cmisSession = sessionFactory.createSession(parameters); > > > // only setting a few properties to retrieve for a test... > > Set<String> filterSet = new HashSet<String>(); > filterSet.add("cmis:objectId"); > filterSet.add("cmis:name"); > filterSet.add("cmis:creationDate"); > filterSet.add("cmis:contentStreamLength"); > > > OperationContext *minimalOperationContext *= > cmisSession.createOperationContext(); > minimalOperationContext.setFilter(filterSet); > minimalOperationContext.setIncludeAcls(false); > minimalOperationContext.setIncludeAllowableActions(false); > minimalOperationContext.setIncludePolicies(false); > > > minimalOperationContext.setIncludeRelationships(IncludeRelationships.NONE); > minimalOperationContext.setRenditionFilterString("cmis:none"); > minimalOperationContext.setIncludePathSegments(false); > minimalOperationContext.setOrderBy(null); > minimalOperationContext.setCacheEnabled(false); > > > Now here is the puzzle. I would actually *not expect *the lines that are > output from the LOGGER.info() to have included any of the properties that > were NOT included in the OperationContext specified. However, the output > is showing EVERY property specified in the LOGGER.info() above ... as > though the OperationContext is getting ignored. Or... am I totally missing > how this is supposed to work? > > Thanks > > Mark > * > * >
