我希望以优化的方式使用Solr Filter Query Cache。
在此link中,提到每个fq
都单独缓存并单独评估。但是在同一个示例中,作者使用单独的fq
参数来添加每个过滤器查询。
例如:
fq=color:black
&fq=model:Lamborghini
&fq=year:[2014 TO *]
所以,我的问题基本上是,而不是上面的例子,如果我这样做:
fq=color:black AND model:Lamborghini AND year:[2014 TO *]
在缓存查询方面,它是否与上述相同?它是否仍会独立缓存每个查询并单独评估它们而不是整个查询(包括AND)?
最后,如果我在filter()
部分中使用q
方法,那么如何实现相同的结果呢?
答案 0 :(得分:2)
如果你这样做,只会使用一个条目缓存,缓存的文档将是符合所有3个条款的文档。
如果你的字段的基数很大,并且查询有几个ANDS,那么你可能会注意到,如果你使用'fq整个事情'的方法可能会有更少的缓存命中(因为它不太可能两个q将使用在所有字段中的相同组合),因此在这种情况下,将每个字段放在其自己的fq中可能是首选。