【发布时间】:2013-11-11 15:53:14
【问题描述】:
所以我读到了这个:http://wiki.apache.org/solr/SolrCaching#filterCache
特别是
过滤器缓存存储任何过滤器查询的结果(“fq” 参数),明确要求 Solr 执行。 (每个过滤器是 分别执行和缓存。何时使用它们来限制 查询返回的结果数,这是使用 set 完成的 路口。)
所以我的问题是这样的。假设我的应用过滤了一组不同的格式 ID。如果格式 ID 是数字,例如 1、2、3、4、5。在查询中作为 fq 参数发送的那些有许多排列。
如果我写了一个这样的温暖查询......
...
<str name="fq">format:(1)+OR+format:(2)+OR+format:(3)+OR+format:(4)+OR+format:(5)</str>
...
这是否会预热并帮助我所有的查询尝试通过这些格式的各种排列进行过滤,或者......只有搜索该排列的人?
我是否应该创建 5 个单独的预热查询(每种格式 1 个)以利用“设置交集”?
或者该查询会为每种格式创建集合?
示例查询
...fq=format:(1)+OR+format:(2)...
...fq=format:(1)+OR+format:(3)...
...fq=format:(2)+OR+format:(3)...
...fq=format:(2)+OR+format:(5)...
etc...
所以我认为没有一个会使用上面列出的预热查询创建的过滤器缓存。
【问题讨论】:
-
看起来这是在说它被 FQ 字段缓存......因此使用这个“OR”逻辑我必须创建排列并对每个排列运行查询以进行加热否则结果集将不会被缓存或无法利用。