You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DSL中AND、OR、NOT运算符优先级及两类查询差异咨询

解答

1. 两个查询的逻辑差异

结合运算符优先级拆解逻辑即可明确差异:

  • 示例查询的query字符串:messi NOT barca AND psg
    按优先级先执行NOT再执行AND,等价于:(messi NOT barca) AND psg
    匹配要求:文档name字段同时满足:包含messi且不包含barca,并且包含psg。

  • 对比查询的query字符串:messi AND barca NOT psg
    同样先执行NOT再执行AND,等价于:messi AND (barca NOT psg)
    匹配要求:文档name字段同时满足:包含messi,并且包含barca且不包含psg。

两者匹配逻辑完全相反:示例查询排除含barca的文档,对比查询要求必须包含barca且排除psg。

2. 运算符优先级顺序

在Elasticsearch的query_string语法中,运算符优先级从高到低为:

  • NOT(最高优先级,最先执行)
  • AND(次之)
  • OR(最低优先级,最后执行)

举例说明:a OR b AND c NOT d会被解析为:a OR (b AND (c NOT d))


内容的提问来源于stack exchange,提问作者sim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 22:18:18