EloView 4 クエリエンジンにおけるクエリオペレーターの優先順位の理解
当社のクエリエンジンは、条件を処理する際に標準的なオペレーターの優先順位ルールに従います。オペレーターは常に以下の順序で評価されます:
- 括弧
- NOT
- AND
- OR
これは、クエリが括弧なしで AND と OR の両方を含む場合、システムは常にすべての AND 条件を評価してから、あらゆる OR 条件を適用することを意味します。
例:オペレーターの優先順位がクエリに与える影響
元のクエリ
name:"POS" and name:"Y052016" or name:"Y052051" or name:"Y300084" or name:"Y351040"エンジンの解釈
AND が OR より先に評価されるため、クエリは次のように扱われます:
code
(name:"POS" and name:"Y052016") or name:"Y052051" or name:"Y300084" or name:"Y351040"結果
これにより次の結果が返されます:
- POS と Y052016 の両方を含むアイテム、または
- Y052051、Y300084、または Y351040 に一致するアイテム — POS を含まないものでも。
意図した結果を得る方法
すべての Y 値に POS を必要とするのが目標である場合、OR 条件を括弧でグループ化する必要があります:
name:"POS" and (name:"Y052016" or name:"Y052051" or name:"Y300084" or name:"Y351040")これにより、POS がすべてのグループ化された Y 値に適用されることが保証されます。
追加の例
元のクエリ
name:"pos" AND name:"store1" OR name:"store2" OR name:"store3" AND name:"KDS"システムによる解釈
(name:"pos" AND name:"store1") OR name:"store2" OR (name:"store3" AND name:"KDS")この論理は、OR 条件が適切にグループ化されていないため、予期しない結果を生む可能性があります。
意図される動作
- 名前に POS を含む
- 次のいずれかを含む: Store1、Store2、または Store3
- KDS も含む
次のようにクエリを書くべきです:
name:"pos" AND (name:"store1" OR name:"store2" OR name:"store3") AND name:"KDS"ベストプラクティス
AND と OR を組み合わせるときは:
- 常に括弧を使用して条件をグループ化してください。
- これにより、意図した論理が明確になり、予期しない結果を防ぎます。
- ⚠️ 一部の既存のフィルターは新しい論理の下では機能せず、再作成が必要になる可能性があります。
用語を明示的にグループ化することにより、クエリは一貫した動作をし、毎回正確な結果を返します。
Please report any broken links by emailing support@elotouch.com and include a link to the knowledge article