Query DSL 简介
-
Elasticsearch提供了基于JSON的、完整的
Query DSL(Domain Specific Language,领域特定语言)。 -
把Query DSL想象成
AST(Abstract Syntax Tree,抽象语法树),这样就有叶子子句和复合(容器)子句。-
叶子子句:叶子子句可以单独使用,一般用来查找指定字段的指定值,例如
match、term、range。 -
复合子句:组合叶子子句或其他复合子句,一般用来逻辑组合多查询(例如
bool)或改变行为(例如constant_score)。
-
叶子子句:叶子子句可以单独使用,一般用来查找指定字段的指定值,例如
Query Context | Filter Context
-
Query Context
- 除了匹配文档,还会计算匹配程度(相关性算分),分数越高匹配程度越高。
-
Filter Context
- Filter Context只进行过滤(是|否),不计算匹配程度(相关性算分)。
- ELasticsearch会自动缓存常用的过滤,以提高性能。
- 总之,把需要计算匹配程度的条件放到Query Context下,其余尽量放到Filter Context下。放到Query Context下算分,放到Filter Context缓存,提高性能。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。