Faire une recherche avancée … sans parenthèses

,
indicateurs de qualité

On se fait plaisir entre geeks 😉 Lorsque vous réalisez une recherche avancée dans Craft, vous avez parfois la nécessité d’avoir des critères  multiples. Par exemple : je recherche les entités actives qui sont situées à RENNES ou BREST.

Dans ce cas, l’idéal serait de pouvoir écrire ce critère de façon naturelle :

situation = active ET (ville = RENNES ou ville = BREST)

Problème : Craft n’accepte pas les parenthèses dans les critères. Cet article décrit comment vous en passer.

 

Solution

Il est assez simple de se passer des parenthèses pour exprimer des critères complexes dans Craft en faisant une analogie entre expression logique et expression mathématique.

Ainsi, l’expression logique : situation = active ET (ville  = RENNES OU ville = BREST)
peut également s’écrire sans parenthèse :

situation = active ET ville = RENNES OU situation = active ET ville = BREST

C’est exactement la même chose que la factorisation et la décomposition en mathématique : Ainsi 3 x (7 + 9 ) = 3 x 7 + 3 x 9

le ET a été transformé en multiplier (x)

le OU a été transformé en additionner (+)

 

Contraintes et limites

Comme on peut le voir, il est assez simple de se passer des parenthèses dans Craft pour exprimer un critère complexe en « développant » celui-ci et en mettant des OU entre chaque critère simple. Attention toutefois :  comme pour les additions et les multiplications, la formule peut être longue si on augmente le nombre de ET (x, et donc de critères factorisant).

Ainsi le critère :

situation = active ET (code NACE = 26.11 OU code NACE = 46.52) ET (ville = RENNES OU ville = BREST)

devra être développé en écrivant dans Craft :

situation=active ET code NACE = 26.11 ET ville = RENNES
OU situation=active ET code NACE = 46.52 ET ville = RENNES
OU situation=active ET code NACE = 26.11 ET ville = BREST
OU situation=active ET code NACE = 46.52 ET ville = BREST

Conclusion

Il est donc possible de se passer des parenthèses pour exprimer une condition de recherche multi critères dans Craft. Attention toutefois, si cela demeure valide y compris avec des expressions longues, l’écriture peut devenir fastidieuse. Il peut alors être plus judicieux de réaliser des recherches plus petites, d’exporter ses résultats partie par partie puis de fusionner les fichiers en un seul afin de récupérer l’ensemble des entités ou éléments voulus (projets, formations, équipements mis en base associée)