Solr查询参数cache/cost

来源:互联网 发布:linux使用搜狗输入法 编辑:程序博客网 时间:2024/05/27 06:16

摘要: 默认情况下,solr会缓存查询结果,这样可以快速响应重复请求。在某些情况下,比如测试的时候,不希望solr缓存,参数cache=false可以禁用solr的缓存,当然你也可以使用cost参数去控制。

参数cache=false

某一次的查询可能使用到了如下的查询参数:
fq={!frange l=10 u=100}mul(popularity,price)
如果我们已经知道上面的查询返回的数据很少,或者已经确定返回值不会使用多次,就可以使用下面的参数去避免solr更新cache
fq={!frange l=10 u=100 cache=false}mul(popularity,price)

参数cost

从Solr 3.4开始,使用参数cost可以控制solr的缓存。带有cost的过滤器将会最后执行,cost 的值为一个整数。如下的查询参数:
fq=cat:video&fq={!cache=false cost=50}productGroup:12&fq={!frange l=10 u=100 cache=false cost=150}log(sum(sqrt(popularity),100))
最先执行的过滤器是fq=cat:video,接下来是fq={!cache=false cost=50}productGroup:12,因为它的cost值相对低,最后执行的是cost值最高的filter query。而且,最后执行的这个filter必须满足前面的query和所有的filter query,因为它的cost值大于100。
需要注意的是,cost参数必须要cache=false,否则不生效。

0 0
原创粉丝点击