Filter Query(执行顺序:先进行过滤,之后再筛选出符合条件的)
1. 过滤查询
其实准确来说,ES中的查询操作分为2种:
查询(query)
和过滤(filter)
。查询即是之前提到的query查询,它 (查询)默认会计算每个返回文档的得分,然后根据得分排序
。而过滤(filter)只会筛选出符合的文档,并不计算 得分,且它可以缓存文档 。所以,单从性能考虑,过滤比查询更快
。换句话说,过滤适合在大范围筛选数据,而查询则适合精确匹配数据。一般应用时, 应先使用过滤操作过滤数据, 然后使用查询匹配数据。
2 .过滤语法
GET /ems/emp/_search
{
"query": {
"bool": {
"must": [
{
"match_all"