我对分面搜索中的流程有一个一般性的问题。
1.假设我发出了一个分面查询搜索,如下所示 -
/solr/query?q=camera
&facet=on
&facet.field=manu
&facet.field=camera_type
&facet.query=price:[* TO 100]
&facet.query=price:[100 TO 200]
&facet.query=[price:200 TO 300]
&facet.query=price:[300 TO 400]
&facet.query=[price:400 TO 500]
&facet.query=price:[500 TO *]
2.现在,我想根据以下查询过滤结果......
/solr/query?q=camera
&facet=on&facet.field=manu&facet.field=camera_type
&fq=price:[400 to 500]
一切都运作良好。即;最后一个查询是根据第一个查询的结果执行的。
以下情况会发生什么?
当我运行简单的“全选”查询时 -
/ solr的/ collection1 /选择Q = %3A %0A&安培;重量= JSON&安培;缩进=真安培;小面=真
然后在分面查询上运行过滤器 -
/ solr的/查询Q =相机 &安培;小面= ON&安培; facet.field =马努 & fq =价格:[400至500] &安培; FQ = camera_type:SLR
'select all'会破坏缓存的查询吗?那么,下一个分面查询(camera_type:SLR)将无法针对过滤器缓存运行吗?
答案 0 :(得分:0)
不,select all不会破坏你的filterCache。
filterCache将存储您的过滤器查询,您可以使用" size"设置要在filterCache中存储的项目数。属性。
在上面的示例中,您的过滤器查询将被缓存,并且将根据您的缓存大小和缓存实现删除它们,这些实现可以是LRUCache,FastLRUCache或LFUCache。
详情请见此内容: https://wiki.apache.org/solr/SolrCaching#filterCache