查询 DSL

编辑

Elasticsearch 提供了一个完整的基于 JSON 的查询 DSL(领域特定语言)来定义查询。可以将查询 DSL 看作是查询的 AST(抽象语法树),它由两种类型的子句组成

叶子查询子句
叶子查询子句在特定字段中查找特定值,例如 matchtermrange 查询。这些查询可以单独使用。
复合查询子句
复合查询子句封装其他叶子 复合查询,用于以逻辑方式组合多个查询(例如 booldis_max 查询),或者改变其行为(例如 constant_score 查询)。

查询子句的行为取决于它们是在查询上下文还是过滤器上下文中使用。

允许开销大的查询

某些类型的查询由于其实现方式通常执行缓慢,这可能会影响集群的稳定性。这些查询可以归类如下:

可以通过将 search.allow_expensive_queries 设置的值设置为 false(默认为 true)来阻止此类查询的执行。