1、领域特定语言(DSL)查询
ES提供了基于JSON的DSL查询,ES会将DSL查询作为AST查询
1.1、叶子查询子句
叶子查询子句在特定字段上查找特定的值,例如match,term或者range查询,这些查询可以被自行使用;
1.2、复合查询子句
复合查询子句包装其他叶子查询或者复合查询,并使用逻辑方式组合多个查询(例如bool查询或dis_max查询),或者更改展现方式(例如constant_score查询);
1.3、查询代价比较高的查询
不同的查询因其实现方式的差异导致在执行速度上会有差异,同时会影响集群的稳定性,查询代价比较高的查询可分为以下几类:
序号 | 字段及说明 | 上下文 |
---|---|---|
1 | 需要进行线性扫描以识别匹配项的查询 | 脚本(script)查询; |
2 | 首次代价比较高的查询 | 模糊(fuzzy)查询 |
正则(regexp)查询 | ||
未设置index_prefixes参数的前缀(prefix)查询 | ||