首页 / 问答 / Elasticsearch(ES)中如何编写像SQL脚本中的AND与OR的组合DSL查询语句呢?

Elasticsearch(ES)中如何编写像SQL脚本中的AND与OR的组合DSL查询语句呢?

SQL Elasticsearch 查询 2.46K 次浏览
0

在关系型数据库(如:SQL Server,MySQL,SQLite,Oracle,PostgreSQL等)中,如果要在查询条件中同时进行AND和OR的组合,则可以使用括号进行优先级的组合,如下:

SELECT * FROM my_table
WHERE 
    ((name=foo AND name=bar) OR (info=foo AND info=bar))
AND state=1

但在Elasticsearch(ES)搜索引擎数据库中的DSL查询语句中,不能像以上写法那样使用括号进行AND与OR的组合查询条件。

现在,如果要在Elasticsearch(ES)的DSL查询中实现上面SQL脚本同样的查询条件,DSL查询语句应该如何写呢?

回复 [×]
提交评论
请输入评论内容

1 个回答

  • 0

    在Elasticsearch中,ORshould来表示,而AND则用must来表示。
    所以,问题中的AND与OR的组合条件在Elasticsearch中可以写成如下的DSL查询语句:

    Rector的个人主页

    Rector

    2021-12-15 回答

    我来回答