cancel
Showing results for 
Search instead for 
Did you mean: 

Recherche fulltext via CMIS

mlagneaux
Champ on-the-rise
Champ on-the-rise
Bonjour,

Je voudrais faire une recherche fulltext via CMIS sur Alfresco 4.0d. J'ai fait des tests aujourd'hui sur une application Java qui utilise opencmis-client en version 0.6.0.
J'ai essayé de faire une requête CMIS avec la clause CONTAINS.

Voici mon code Java :

List<Document> documentList = new ArrayList<Document>();
      
// build query
ObjectType type = session.getTypeDefinition(BaseTypeId.CMIS_DOCUMENT.value());
PropertyDefinition<?> objectIdPropDef = type.getPropertyDefinitions().get(PropertyIds.OBJECT_ID);
String ObjectIdQueryName = objectIdPropDef.getQueryName();
      
String queryString = MessageFormat.format(QUERY_SEARCH_DOCUMENTS, ObjectIdQueryName, type.getQueryName(), term);
System.out.println("Query : "+queryString);

// execute query
ItemIterable<QueryResult> results = session.query(queryString, false);
for (QueryResult qResult : results) {
   String objectId = qResult.getPropertyValueByQueryName(ObjectIdQueryName);
   System.out.println("objectId : "+objectId);
   Document document = (Document)session.getObject(objectId);
   documentList.add(document);
}


J'obtiens l'erreur suivante :

Searching documents containing 'test'…
Query : SELECT * FROM cmis:document WHERE CONTAINS('test')
Exception in thread "main" org.apache.chemistry.opencmis.commons.exceptions.CmisConnectionException: Parsing exception!
   at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.parse(AbstractAtomPubService.java:531)
   at org.apache.chemistry.opencmis.client.bindings.spi.atompub.DiscoveryServiceImpl.query(DiscoveryServiceImpl.java:147)
   at org.apache.chemistry.opencmis.client.runtime.SessionImpl$3.fetchPage(SessionImpl.java:557)
   at org.apache.chemistry.opencmis.client.runtime.util.AbstractIterator.getCurrentPage(AbstractIterator.java:132)
   at org.apache.chemistry.opencmis.client.runtime.util.CollectionIterator.hasNext(CollectionIterator.java:48)
   at fr.virage.service.impl.CMISRemoteServiceImpl.searchDocuments(CMISRemoteServiceImpl.java:110)
   at fr.virage.Main.searchDocuments(Main.java:52)
   at fr.virage.Main.main(Main.java:40)
Caused by: com.ctc.wstx.exc.WstxParsingException: Unrecognized XML directive; expected CDATA or comment ('<![CDATA[' or '<!–').
at [row,col {unknown-source}]: [89,17]
   at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:605)
   at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:461)
   at com.ctc.wstx.sr.BasicStreamReader.nextFromTreeCommentOrCData(BasicStreamReader.java:3285)
   at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2822)
   at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
   at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AtomPubParser.next(AtomPubParser.java:650)
   at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AtomPubParser.skip(AtomPubParser.java:633)
   at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AtomPubParser.parseElement(AtomPubParser.java:380)
   at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AtomPubParser.parseEntry(AtomPubParser.java:295)
   at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AtomPubParser.parseFeed(AtomPubParser.java:256)
   at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AtomPubParser.parse(AtomPubParser.java:120)
   at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.parse(AbstractAtomPubService.java:529)
   … 7 more


J'ai essayé également d'autres requêtes et obtenus différentes erreurs
SELECT cmisSmiley SurprisedbjectId FROM cmis:document WHERE CONTAINS('test')
SELECT * FROM cmis:document WHERE CONTAINS('TEXT:"test"')
SELECT * FROM cmis:document D WHERE CONTAINS(D, 'test')


Quelle syntaxe faut-il utiliser ?
Faut-il utiliser l'extension CMIS d'Alfresco pour utiliser la clause CONTAINS ?
Y a-t-il un paramétrage à faire pour authoriser la recherche fulltext via CMIS ?
Y a-t-il une autre manière de procéder ?

Merci d'avance pour votre aide.
1 REPLY 1

rguinot
Confirmed Champ
Confirmed Champ
Ce paragraphe vous aide-t-il ?
http://wiki.alfresco.com/wiki/Full_Text_Search_Query_Syntax#Embedded_in_CMIS_contains.28.29

Vous n'avez semble-t-il pas escapé les quotes, à minima.
Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.