从缓存查询的分面搜索

时间:2014-08-12 22:11:28

标签: solr

我对分面搜索中的流程有一个一般性的问题。

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]

一切都运作良好。即;最后一个查询是根据第一个查询的结果执行的。

以下情况会发生什么?

  1. 当我运行简单的“全选”查询时 -

    / solr的/ collection1 /选择Q = %3A %0A&安培;重量= JSON&安培;缩进=真安培;小面=真

  2. 然后在分面查询上运行过滤器 -

    / solr的/查询Q =相机   &安培;小面= ON&安培; facet.field =马努   & fq =价格:[400至500]   &安培; FQ = camera_type:SLR

  3. 'select all'会破坏缓存的查询吗?那么,下一个分面查询(camera_type:SLR)将无法针对过滤器缓存运行吗?

1 个答案:

答案 0 :(得分:0)

不,select all不会破坏你的filterCache。

filterCache将存储您的过滤器查询,您可以使用" size"设置要在filterCache中存储的项目数。属性。

在上面的示例中,您的过滤器查询将被缓存,并且将根据您的缓存大小和缓存实现删除它们,这些实现可以是LRUCache,FastLRUCache或LFUCache。

详情请见此内容: https://wiki.apache.org/solr/SolrCaching#filterCache