ES1.x版本升级后filter查询被移除

来源:互联网 发布:vpn网络加速器 编辑:程序博客网 时间:2024/04/30 00:31

由于项目需求要将原来的ES1.7客户端API升级到5.x版本,发现API上的变动很大,其中在1.x版本中常用到的过滤器filter查询方式在2.0以后就被废弃了,在之前官方文档说明中,filter查询可以做到缓存查询结果,提高查询性能,因此在可能的情况下推荐使用filter查询。

在2.0版本以后,ES将filter和quries接口进行了合并,并且,query语句现在可以被用在query上下文或者filter上下文中,在filter上下文的查询不会计算相关度得分,并且可以被缓存;

其中,filter上下文可以通过以下几种方式引入:

1.常数得分查询constant_score query

2.布尔查询中的must_not和filter

3.函数得分查询中的filter filters

4.任何称作filter的API,比如post_filter


参考:官方文档 https://www.elastic.co/guide/en/elasticsearch/reference/2.0/breaking_20_query_dsl_changes.html