Zrozumienie priorytetu operatorów zapytań w silniku zapytań EloView 4
Nasz silnik zapytań stosuje standardowe zasady priorytetu operatorów podczas przetwarzania warunków. Operatory są zawsze oceniane w następującej kolejności:
- Nawiasy/Brakety
- NIE
- I
- LUB
Oznacza to, że gdy zapytanie zawiera zarówno I, jak i LUB bez nawiasów, system zawsze ocenia wszystkie warunki I przed zastosowaniem jakichkolwiek warunków LUB.
Przykład: Jak priorytet operatorów wpływa na Twoje zapytanie
Oryginalne zapytanie
name:"POS" and name:"Y052016" or name:"Y052051" or name:"Y300084" or name:"Y351040"Jak silnik to interpretuje
Ponieważ I jest oceniane przed LUB, zapytanie traktowane jest jako:
(name:"POS" and name:"Y052016") or name:"Y052051" or name:"Y300084" or name:"Y351040"Wynik
To zwróci:
- Elementy, które zawierają zarówno POS, jak i Y052016, lub
- Każde elementy, które pasują do Y052051, Y300084 lub Y351040— nawet jeśli nie zawierają POS.
Jak uzyskać zamierzone wyniki
Jeśli Twoim celem jest wymuszenie POS dla wszystkich wartości Y, powinieneś użyć nawiasów, aby zgrupować warunki LUB:
name:"POS" and (name:"Y052016" or name:"Y052051" or name:"Y300084" or name:"Y351040")Zapewnia to, że POS ma zastosowanie do wszystkich zgrupowanych wartości Y.
Dodatkowy przykład
Oryginalne zapytanie
name:"pos" AND name:"store1" OR name:"store2" OR name:"store3" AND name:"KDS"Interpretowane przez system
(name:"pos" AND name:"store1") OR name:"store2" OR (name:"store3" AND name:"KDS")Ta logika może dać nieoczekiwane wyniki, ponieważ warunki LUB nie są poprawnie zgrupowane.
Zamierzony zachowanie
Jeśli chcesz znaleźć wyniki, które:
- Zawierają POS w nazwie
- Zawierają jedną z następujących: Store1, Store2 lub Store3
- Również zawierają KDS
Powinieneś napisać zapytanie w ten sposób:
name:"pos" AND (name:"store1" OR name:"store2" OR name:"store3") AND name:"KDS"Najlepsza praktyka
Podczas łączenia I i LUB:
- Zawsze używaj nawiasów do grupowania swoich warunków.
- Zapewnia to, że zamierzona logika jest jasna i zapobiega nieoczekiwanym wynikom.
- ⚠️ Niektóre istniejące filtry mogą nie działać zgodnie z nową logiką i będą musiały być odtworzone.
Poprzez wyraźne grupowanie terminów, Twoje zapytania będą zachowywać się konsekwentnie i za każdym razem zwracać dokładne wyniki.
Please report any broken links by emailing support@elotouch.com and include a link to the knowledge article