Spécifier plusieurs PATH dans une requête lucène

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

Spécifier plusieurs PATH dans une requête lucène

Bonjour,

J'ai un tout petit souci, et je suis sur que je suis passé à coté de la réponse dans le wiki mais j'ai beau lire et relire les pages concernées je suis toujours bloqué…

J'ai une template freemarker qui ressemble à ça :
<#assign projet="${webproject}">
<#assign recherche="TEXT:*${searched}* OR QNAME:*${searched}* AND
+PATH:\"www/avm_webapps/ROOT/contenu/actualites//*\" OR
+PATH:\"www/avm_webapps/ROOT/contenu/communiques//*\" OR
+PATH:\"www/avm_webapps/ROOT/contenu/infoperenne//*\"">

<#list avm.stores as store>
     <#if store.name=projet>
           <#list store.luceneSearch(recherche) as node>
                 ${node.path}
           </#list>
     </#if>
</#list>

${webproject} et ${searched} sont des variables que je "récupère depuis mon fichier js" (étape peut être useless vu que les paramètres sont dans l'url mais ça a le mérite de fonctionner)
Si je vire tous les PATH de ma recherche ou même si je n'en spécifie qu'un ça ne fonctionne pas (j'ai fais des 10aines de test depuis hier avec du contenu dans acutalites/ ou communiques/)

Quelqu'un peut-il me donner la formule magique ?

Cordialement
1 Reply
cleseach
Active Member II

Re: Spécifier plusieurs PATH dans une requête lucène

Bonjour,

J'aimerai bien pouvoir vous fournir cette requête magique; malheureusement, je n'en connais pas la finalité….
En clair, donnez-nous en français ce que vous recherchez et la formule s'écrira d'elle-même Smiley Happy

Je tente toutefois une interprétation :
Vous souhaitez récupérer tous les documents sotckés dans les espaces "actualites", "communiques" ou "infoperenne", et dont le nom ou le texte contient un certain mot.
Ce qui pourrait se traduire en (absolument pas testé) :
+(PATH:"/app:company_home/cm:contenu/cm:actualites//*" PATH:"/app:company_home/cm:contenu/cm:communiques//*" PATH:"/app:company_home/cm:contenu/cm:infoperenne//*") +(TEXT:"*${searched}*" @cm\:name:"*${searched}*")
Comme vous pouvez le remarquer, j'ai modifié les PATH : il s'agit d'un exemple pour vous présenter ce à quoi doit ressembler un path dans une requête Lucene.

Un conseil en passant : dès que vous avez un doute sur une requête, utilisez le node browser. Il permet d'identifier rapidement les erreurs de logique et de syntaxe.

Cordialement,
Charles Le Seac'h