3.5.3

{ "post_filter" : { "script" : { "_cache": true, "script" : "now - doc['year'].value > 100", "params" : { "now" : 2012 } } } }

 关于过滤器最后要提到的是缓存。缓存加速了使用过滤器的查询,代价是第一次执行过滤器 时的内存成本和查询时间。因此,缓存的最佳选择是那些可以重复使用的过滤器,例如,经常会 使用并包括参数值的那些。

有些过滤器不支持_cache参数,因为它们的结果总是被缓存。默认情况下是下面这些:

 exists

 missing

 range

 term

 terms

可通过关闭缓存来修改此行为,代码如下所示:

{
"post_filter": {
"term": {
"_cache": false,
"year": 1961
}
}
}
对于ids过滤器、match_all过滤器和limit过滤器,缓存是无效的。