关于es的filter缓存的bitmap什么情况下有用?

Elasticsearch | 作者 陈水鱼 | 发布于2019年07月25日 | 阅读数:131


Center.jpg

如果在第一次过滤中使用了term=black,生成了[0,1,1,1]的bitmap,那下次查询term=red,是否就没用了?
已邀请:

bellengao - 博客: https://www.jianshu.com/u/e0088e3e2127

赞同来自:

没用了

Ombres

赞同来自:

针对可以缓存query,es会缓存每个段的命中数。如果query不一致,那么就不会从缓存查了。

另外一个查询要被缓存需要满足两个大的条件。

第一个是对于query的类型有要求
对于TermQuery、MatchAllDocsQuery等这种查询都不被缓存。当BooleanQuey的子节点为空时不会被缓存,当Dis Max Query的Disjuncts为空时不会被缓存。

第二个是最近查询次数
对于历史查询次数有要求,对于消耗高昂的Query只需要2次就加入缓存,其他的默认是5次,对于BooleanQuery和DisjunctionMaxQuery次数为4次。默认的,这个历史查询的数量是256。

要回复问题请先登录注册