elasticsearch中的过滤器和缓存

来源:互联网 发布:spark streaming java 编辑:程序博客网 时间:2024/04/29 05:32

        过滤器是用来实现缓存的很好的办法,因为缓存这些过滤结果不需要太多的内存,而且其他的查询可以重用这些过滤,需要注意的是这里指的是同样参数下的。

       某些过滤产生的结果是很易于缓存的,有关缓存与否的区别在于是否将过滤结果存放到缓存中。

       对于term、terms、prefix、range默认都是会进行缓存的,并且建议使用这些过滤条件,而不是同等效果的查询。

      而其他的过滤器,一般会将字段数据加载到内存中来进行工作,通常是不缓存结果的,主要是因为这些过滤的操作本身就比较快,而且如果要复用这些缓存结果的话,还需要做很多额外的工作。

      对于某些过滤器之间的组合,比如and、not、or,它们是不会缓存结果的,因为它们主要是操作内联的过滤器,所以不需要过滤。

       所有的过滤器都允许设置_cache元素来显式的控制是否进行缓存,并且允许设置一个_cache_key用来当做缓存的主键,这个在过滤大集合的情况下非常有用,比如包含很多元素的terms  filter。

0 0
原创粉丝点击