SOLR中的多个过滤器查询(fq)

时间:2014-06-19 07:43:09

标签: solr

我的SOLR索引为:

{'year':2002
'user_entries':['user1']},
{'year':2003
'user_entries':['user2']},
{'year':2002
'user_entries':['user1']},

预期结果

{facet_fields:{2002:{'user1':2}, 2003:{'user2':1}}}

我可以使用 fq = year:2002 来提取user_entries上的facet,以提取2002年中每个用户的条目数

  

/ solr的/ RSS /选择Q = &安培; FQ =年:2002&安培;重量= JSON&安培;缩进=真安培;小面=真安培; facet.query =年:2002&安培;小面。字段= user_entries

但我想从2002年到2010年单独提取每年的user_entries,而不是总结它们。

当前方法:

1. solr/rss/select?q=*:*&fq=year:2002&wt=json&indent=true&facet=true&facet.query=year:2002&facet.field=user_entries 2. solr/rss/select?q=*:*&fq=year:2003&wt=json&indent=true&facet=true&facet.query=year:2003&facet.field=user_entries ...

我可以每年使用单个多个过滤器查询而不是多个查询,我可以使用这些查询提取单个年份数据,而无需将其与默认OR操作相加?

1 个答案:

答案 0 :(得分:2)

如果您使用的是Solr 4.0或更新版本,则可以使用pivot facets

?q=*:*
&facet=true
&facet.pivot=year,user_entries
&f.user_entries.facet.limit=3

但是响应与常规字段方面并不完全相同,因此您可能需要更改解析代码。你将获得" 2002"年份字段的值,以及" 2002"的每个组合。和user_entries字段的值(限制为3),然后是" 2003"值。