# 查询 DSL

原文链接 :[https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html)

译文链接 : [http://www.apache.wiki/pages/viewpage.action?pageId=4260468](http://www.apache.wiki/pages/viewpage.action?pageId=4260468)

贡献者 : @布丁

**Elasticsearch** 提供了一个基于 **JSON** 的完整的查询 **DSL** 来定义查询。将查询 **DSL** 视为查询的 **AST**，由两种类型的子句组成：

*   **叶查询子句**

叶查询子句在特定查询中查找特定值，例如匹配、项值、范围查询。这些查询都可以给自己使用。

*   **复合查询子句**

复合查询子句包装其他叶子或复合查询，用于以逻辑方式组合多个查询（例如 **bool** 或 **dis_max** 查询），或更改其行为（如 **constant_score** 查询）。

查询子句的行为有所不同，具体取决于它们是在查询上下文还是过滤器上下文中使用。