查询DSL

edit

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

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

查询子句的行为会根据它们是在查询上下文还是过滤上下文中使用而有所不同。

Allow expensive queries

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

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