Verstehen der Operatorenreihenfolge im EloView 4 Abfrage-Engine
Unsere Abfrage-Engine folgt standardmäßigen Operatoren-Reihenfolgen bei der Verarbeitung von Bedingungen. Die Operatoren werden immer in der folgenden Reihenfolge ausgewertet:
- Klammern
- NICHT
- UND
- ODER
Das bedeutet, dass, wenn eine Abfrage sowohl UND als auch ODER ohne Klammern enthält, das System immer alle UND Bedingungen vor der Anwendung von ODER-Bedingungen auswertet.
Beispiel: Wie die Operatoren-Reihenfolge Ihre Abfrage beeinflusst
Ursprüngliche Abfrage
name:"POS" and name:"Y052016" or name:"Y052051" or name:"Y300084" or name:"Y351040"Wie die Engine es interpretiert
Da UND vor ODER ausgewertet wird, wird die Abfrage wie folgt behandelt:
(name:"POS" and name:"Y052016") or name:"Y052051" or name:"Y300084" or name:"Y351040"Ergebnis
Dies wird zurückgegeben:
- Artikel, die sowohl POS als auch Y052016 enthalten, oder
- Alle Artikel, die mit Y052051, Y300084 oder Y351040 übereinstimmen — selbst wenn sie POS nicht enthalten.
Wie man die beabsichtigten Ergebnisse erzielt
Wenn Ihr Ziel darin besteht, POS für alle Y-Werte zu verlangen, sollten Sie Klammern verwenden, um Ihre ODER-Bedingungen zu gruppieren:
name:"POS" and (name:"Y052016" or name:"Y052051" or name:"Y300084" or name:"Y351040")Dies stellt sicher, dass POS auf alle gruppierten Y-Werte angewendet wird.
Zusätzliches Beispiel
Ursprüngliche Abfrage
name:"pos" AND name:"store1" OR name:"store2" OR name:"store3" AND name:"KDS"Vom System interpretiert
(name:"pos" AND name:"store1") OR name:"store2" OR (name:"store3" AND name:"KDS")Diese Logik kann unerwartete Ergebnisse produzieren, da die ODER-Bedingungen nicht richtig gruppiert sind.
Beabsichtigtes Verhalten
Wenn Sie Ergebnisse finden möchten, die:
- POS im Namen enthalten
- Einen der folgenden enthalten: Store1, Store2 oder Store3
- Auch KDS enthalten
Sollten Sie die Abfrage folgendermaßen schreiben:
name:"pos" AND (name:"store1" OR name:"store2" OR name:"store3") AND name:"KDS"Best Practice
Beim Kombinieren von UND und ODER:
- Verwenden Sie immer Klammern, um Ihre Bedingungen zu gruppieren.
- Dies stellt sicher, dass Ihre beabsichtigte Logik klar ist und unerwartete Ergebnisse verhindert.
- ⚠️ Einige vorhandene Filter funktionieren möglicherweise nicht unter der neuen Logik und müssen möglicherweise neu erstellt werden.
Indem Sie die Begriffe explizit gruppieren, verhalten sich Ihre Abfragen konsistent und liefern jedes Mal genaue Ergebnisse.
Please report any broken links by emailing support@elotouch.com and include a link to the knowledge article