Elasticsearch 的query查询和filter查询

Elasticsearch 的query查询和filter查询的区别

引入

最近随着项目中在elasticsearch的数据越来越多以及查询条件的增多,需要对elasticsearch的优化

关于query和filter的区别

从查询上开始优化,这就要区别query和filter的查询区别
query的主要点是“此文档与此查询子句的匹配程度如何?”
filter的主要点是“此文档和查询子句匹配吗?”

query查询

  1. query查询,包含查询子句的查询条件;
  2. query查询,每一个查询满足条件的文档都有跟查询子句相关的匹配度;
  3. _socre, 分数越高,匹配越高;
  4. 适用于全文检索

filter查询

  1. filter查询,返回的结果只有对查询子句的是与不是;
  2. filter查询,不返回匹配度,不涉及分数;
  3. filter适用于精确查询;
  4. 不计算各个文档的评分,所以查询更快;
  5. filter有缓存;

总结

如果只有过滤(是与不是的查询)就使用filter, 如果包括匹配度的查询,就使用query查询,当然两者结合是最好的,具体情况具体分析,如果能使用filter替换就尽量替换,这样会提高效率,当然对于叶查询子句比如match、term、terms、range两个都能使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值