Comprendre la priorité des opérateurs de requête dans le moteur de requête EloView 4
Notre moteur de requête suit les règles de priorité des opérateurs standard lors du traitement des conditions. Les opérateurs sont toujours évalués dans l'ordre suivant :
- Parenthèses / Crochets
- NON
- ET
- OU
Cela signifie que lorsque une requête contient à la fois ET et OU sans parenthèses, le système évaluera toujours toutes les conditions ET avant d'appliquer les conditions OU.
Exemple : Comment la priorité des opérateurs affecte votre requête
Requête originale
name:"POS" and name:"Y052016" or name:"Y052051" or name:"Y300084" or name:"Y351040"Comment le moteur l'interprète
Parce que ET est évalué avant OU, la requête est traitée comme :
(name:"POS" and name:"Y052016") or name:"Y052051" or name:"Y300084" or name:"Y351040"Résultat
Cela retournera :
- Des éléments qui contiennent à la fois POS et Y052016, ou
- Tous les éléments qui correspondent à Y052051, Y300084, ou Y351040 — même s'ils ne contiennent pas POS.
Comment obtenir les résultats souhaités
Si votre objectif est de nécessiter POS pour toutes les valeurs Y, vous devriez utiliser des parenthèses pour regrouper vos conditions OR :
name:"POS" and (name:"Y052016" or name:"Y052051" or name:"Y300084" or name:"Y351040")Cela garantit que POS s'applique à toutes les valeurs Y regroupées.
Exemple supplémentaire
Requête originale
name:"pos" AND name:"store1" OR name:"store2" OR name:"store3" AND name:"KDS"Interprété par le système
(name:"pos" AND name:"store1") OR name:"store2" OR (name:"store3" AND name:"KDS")Cette logique peut produire des résultats inattendus parce que les conditions OU ne sont pas correctement regroupées.
Comportement souhaité
Si vous voulez trouver des résultats qui :
- Contiennent POS dans le nom
- Incluent l'un des suivants : Store1, Store2, ou Store3
- Contiennent également KDS
Vous devriez écrire la requête comme ceci :
name:"pos" AND (name:"store1" OR name:"store2" OR name:"store3") AND name:"KDS"Meilleure pratique
Lors de la combinaison ET et OU :
- Utilisez toujours des parenthèses pour regrouper vos conditions.
- Cela garantit que votre logique souhaitée est claire et empêche des résultats inattendus.
- ⚠️ Certains filtres existants peuvent ne pas fonctionner sous la nouvelle logique et devront être recréés.
En regroupant explicitement les termes, vos requêtes se comporteront de manière cohérente et retourneront des résultats précis à chaque fois.
Please report any broken links by emailing support@elotouch.com and include a link to the knowledge article