Recherche avec lucene en erreur. Failed to porse Xpath

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-09-2015 11:30 AM
Bonjour,
je tente par tous les moyens de faire une recherche de tous les documents ayant un état particulier d'un site share.
J'ai développé tout un script, malheureusement, je bloque sur la recherche lucene.
Apres avoir passé une journée de différents tests, j'arrive sur cette ligne de recherche sur lequel il bloque
or voici le message d'erreur que je recupere a l'execution du script dans la catalina.out
Je comprend qu'il me dit qu'il ne trouverai pas le dossier 931140000, or ce dernier existe bien, et est bien en cm (controlé depuis le node explorer depuis l'interface d'admin)
Voici un extrait du contenu du st:sites via l'interface d'admin
Je ne comprend pas ce qui cloche dans cette recherche.
Merci de votre réponse.
Alexandre
je tente par tous les moyens de faire une recherche de tous les documents ayant un état particulier d'un site share.
J'ai développé tout un script, malheureusement, je bloque sur la recherche lucene.
Apres avoir passé une journée de différents tests, j'arrive sur cette ligne de recherche sur lequel il bloque
result1 =search.luceneSearch('+PATH:"//app:company_home//st:sites//cm:'+site.shortName+'//cm:documentLibrary//*" AND +TYPE:"mybc:bc" AND @mybc\\:etatbc:\"Recue"');
or voici le message d'erreur que je recupere a l'execution du script dans la catalina.out
2015-12-09 16:52:46,577 ERROR [solr.core.SolrCore] [http-bio-8443-exec-57] org.apache.solr.common.SolrException: org.apache.solr.search.SyntaxError: org.apache.lucene.queryparser.classic.ParseException: Cannot parse '+PATH:"//app:company_home//st:sites//cm:931140000//cm:documentLibrary//*" AND +TYPE:"mybc:bc" AND @mybc\:etatbc:"Recue"': Failed to parse XPath…Unexpected '931140000' at org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:205) at org.apache.solr.handler.component.AlfrescoSearchHandler.handleRequestBody(AlfrescoSearchHandler.java:233) at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135) at org.apache.solr.core.SolrCore.execute(SolrCore.java:1962)
Je comprend qu'il me dit qu'il ne trouverai pas le dossier 931140000, or ce dernier existe bien, et est bien en cm (controlé depuis le node explorer depuis l'interface d'admin)
Voici un extrait du contenu du st:sites via l'interface d'admin
Fils (68)Nom Référence de l'enfant Primaire Type d'association Indexcm:surf-config workspace://SpacesStore/86b396ea-fc6a-4470-97e9-5f2f7106c8ca true cm:contains 0cm:931140000 workspace://SpacesStore/46a49569-3f73-4d63-bd00-0d58150ab39a true cm:contains 1cm:931140100 workspace://SpacesStore/c0c0f655-1a5b-48c3-a3d1-72263115321c true cm:contains 2
Je ne comprend pas ce qui cloche dans cette recherche.
Merci de votre réponse.
Alexandre
Labels:
- Labels:
-
Archive
5 REPLIES 5
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-10-2015 10:45 AM
Bonjour,
Votre expression PATH est construites avec des "//" utilisez de "/".
Pour mettre au point votre recherche, je vous conseille d'utiliser le navigateur de noeuds et de tester chaque expression unitairement avant de les combiner.
Cordialement,
Charles Le Seac'h
Votre expression PATH est construites avec des "//" utilisez de "/".
Pour mettre au point votre recherche, je vous conseille d'utiliser le navigateur de noeuds et de tester chaque expression unitairement avant de les combiner.
Cordialement,
Charles Le Seac'h

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-11-2015 05:19 AM
Merci de votre reponse.
J'avais effectivement deja essayé avec la recherche en direct, avec plusieurs possiblité.
Je viens a nouveau de faire le test en remplacant les // par /
J'ai toujours la meme erreur
J'ai également essayé cette possibilité, mais c'est toujours la même erreur.
J'ai ensuite fait plusieurs test
</code>
J'ai bien 2000 resultats, j'ai récupéré le nom du site du premier document affiché.
Toujours la meme erreur dans catalina.out
Pourtant, apres vérification dans la console d'admin, le site est bien en "cm:"
Bref,je ne comprend pas.
J'avais effectivement deja essayé avec la recherche en direct, avec plusieurs possiblité.
Je viens a nouveau de faire le test en remplacant les // par /
PATH:"/app:company_home/st:sites/cm:931140000/cm:documentLibrary/*"
J'ai toujours la meme erreur
Failed to parse XPath…Unexpected '931140000'
J'ai également essayé cette possibilité, mais c'est toujours la même erreur.
PATH:"/app:company_home/st:sites/cm:931140000/cm:documentLibrary//*"
J'ai ensuite fait plusieurs test
PATH:"/app:company_home/st:sites//*"
</code>
J'ai bien 2000 resultats, j'ai récupéré le nom du site du premier document affiché.
PATH:"/app:company_home/st:sites/cm:937156100/cm:documentLibrary//*"
Toujours la meme erreur dans catalina.out
Failed to parse XPath…Unexpected '937156100'
Pourtant, apres vérification dans la console d'admin, le site est bien en "cm:"
Bref,je ne comprend pas.
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-11-2015 07:22 PM
Bonjour,
Lorsque l'on utilise des expressions PATH, il est nécessaire d'encoder les termes du path en ISO9075 (cf. org.alfresco.util.ISO9075)
Avec un tel encodage, le shortname de votre site sera quelque peu différent de ka forme que vous utilisez 😉
Petit truc au passage, lorsqu'une recherche PATH ne fonctionne pas, vous pouvez utiliser le navigateur de noeud pour identifier le bon PATH à utiliser.
Cordialement,
Charles Le Seac'h
Lorsque l'on utilise des expressions PATH, il est nécessaire d'encoder les termes du path en ISO9075 (cf. org.alfresco.util.ISO9075)
Avec un tel encodage, le shortname de votre site sera quelque peu différent de ka forme que vous utilisez 😉
Petit truc au passage, lorsqu'une recherche PATH ne fonctionne pas, vous pouvez utiliser le navigateur de noeud pour identifier le bon PATH à utiliser.
Cordialement,
Charles Le Seac'h

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-18-2015 08:24 AM
Merci. Effectivement, le probleme etait cet encodage. C'est au top.
POur ceux qui tomberait sur un probleme equivalent voici pour ma part la reponse.
POur ceux qui tomberait sur un probleme equivalent voici pour ma part la reponse.
result1 = search.luceneSearch("TYPE:\"mybc:bc\" AND @mybc\\:etatbc:\"Recue\" +PATH:\"/app:"+search.ISO9075Encode("company_home")+"/st:"+search.ISO9075Encode("sites")+"/cm:"+search.ISO9075Encode(site.shortName)+"/cm:"+search.ISO9075Encode("documentLibrary")+"//*\"");
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-31-2015 02:57 AM
Bonjour,
Merci pour votre retour positif.
Un truc de plus : vous pouvez optimiser un peu la construction de votre requête. En effet, "company_home", "sites" et "documentlibrary" sont des chapines de caractères fixes pour lesquels l'encodage ISO9075 n'apporte rien. Vous pouvez donc vous passer de cette étape d'encodage.
Conservez-la uniquement pour le nom du site.
Cordialement,
Charles Le Seac'h
Merci pour votre retour positif.
Un truc de plus : vous pouvez optimiser un peu la construction de votre requête. En effet, "company_home", "sites" et "documentlibrary" sont des chapines de caractères fixes pour lesquels l'encodage ISO9075 n'apporte rien. Vous pouvez donc vous passer de cette étape d'encodage.
Conservez-la uniquement pour le nom du site.
Cordialement,
Charles Le Seac'h
