在Solr中,是否还缓存了成本的过滤查询?

时间:2014-06-18 19:00:55

标签: solr filter

我正在阅读优秀的Solr in Action书籍,在第7章中有关查询的内容,它首先声明过滤查询(例如fq=title:"Solr in Action")具有以下优势:它们通常可在搜索之间重复使用,并且其结果可以独立缓存。它继续描述执行查询的过程

  

...对索引执行过滤器以获得新的DocSet ...

稍后,在解释cost本地参数(例如fq={!cost=42}title:"Solr in Action")时,它会说明

  

...如果可以首先执行减少结果集的过滤器,那么任何其他过滤器都可以使用较少的文档来执行,因此执行速度会更快。

这似乎与我相矛盾。如果说第二个过滤器只考虑第一个过滤器产生的DocSet,则缓存第二个过滤器的结果是没有意义的。它不会重复用于下一次搜索,因为下一次搜索可能没有第一次过滤。

对过滤器查询应用成本是否意味着它将不再针对索引执行,而是再次使用所有先前过滤器的结果?如果是这样,那会如何影响可缓存性?

1 个答案:

答案 0 :(得分:2)

已经很晚了,但我遇到了同样的问题,所以我会在这里发表答案。

Here:“您应该记住,只有在未缓存过滤器查询时,费用属性才有效。” And here

因此,“cost”仅适用于非缓存过滤器。