语句的种类
末端查询语句
末端查询语句是在特定的值中查找特定值,例如match,term,range
复合查询语句
复合查询语句可以组合其他 复合语句 或者 末端语句 组成一个语句(例如: bool dis_max),或者声明行为(constant_score)
允许表达式的语句
这些类型的语句通常来说因为实现方式的原因执行缓慢,这能够影响集群的稳定性.
- 查询需要逐行扫描才能确定是否匹配的项目
- 查询前需要高代价的语句
- fuzzy queries (除了 wildcard类型的字段)
- regexp queries (除了 wildcard类型的字段)
- prefix queries (除了 wildcard类型的字段 或者那些没有 index_prefixes的查询)
- wildcard queries (除了 wildcard类型的字段)
- range queries在文本类型或者keyword类的变量上使用range查询
- Joining queries
- Queries on deprecated geo shapes
- 查询每个文档需要很高的代价
以上的查询可以通过设置search.allow_expensive_queries为false.来禁止使用