ES DSL 查询

语句的种类

末端查询语句

末端查询语句是在特定的值中查找特定值,例如match,term,range

复合查询语句

复合查询语句可以组合其他 复合语句 或者 末端语句 组成一个语句(例如: bool dis_max),或者声明行为(constant_score)

允许表达式的语句

这些类型的语句通常来说因为实现方式的原因执行缓慢,这能够影响集群的稳定性.

  1. 查询需要逐行扫描才能确定是否匹配的项目
  1. 查询前需要高代价的语句
  1. Joining queries
  2. Queries on deprecated geo shapes
  3. 查询每个文档需要很高的代价

以上的查询可以通过设置search.allow_expensive_queries为false.来禁止使用

Author: Sean
Link: https://blog.whileaway.io/posts/ad026521/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.