cancel
Showing results for 
Search instead for 
Did you mean: 

Recherche AND et + par Lucene

herve
Champ in-the-making
Champ in-the-making
Bonjour à tous

Je suis en train de développer un petit formulaire de recherche sur 4 zones avec la possibilité à chaque fois de choisir l'opérateur booléen (AND ou OR) et je viens de m'apercevoir que dans la classe SearchContext, l'opérateur AND était géré comme un +
Or dans lucene, l'opérateur '+' signifie "requis".

Y-a-t-il une raison particulière à cela ?

Hervé
2 REPLIES 2

pdubois
Champ on-the-rise
Champ on-the-rise
Bonjour,

oui requis donc "and".

herve
Champ in-the-making
Champ in-the-making
Bonjour

Cette réponse ne me semble pas être bonne
Le terme "requis" s'applique à un terme de la requête alors que le booléen "AND" sur une expression composée d'au moins deux termes.
D'ailleurs, lucene est très clair là dessus…
http://lucene.apache.org/java/docs/queryparsersyntax.html#Boolean%20operators

Effectivement, , si je veux chercher les documents qui sont composés du terme "tomcat" et "heartbeat", je peux faire (+tomcat +heartbeat)
Mais si je veux chercher les documents qui comportent tomcat ou heartbeat mais que le terme heartbeat est obligatoire, je mets (tomcat +heartbeat)
Et ça n'a rien à voir avec un ET…

Je ne sais pas s'il y a une astuce actuellement dans Alfresco, mais j'ai dû refaire le bean SearchContext pour différencier le + et le AND.
Dès que je l'aurai un peu plus testé, je le posterai.

Hervé