如何对构面计数使用不同的查询

时间:2016-03-23 00:53:16

标签: solr solrj

如果搜索q=*:*&facet=true&facet.field=category solr,则返回类似:

jackets (10)
shirts (5)

如果我将查询更改为q=name:shirt&facet=true&facet.field=category,那么我

jackets (0)
shirts (5)

我想使用不同的查询生成构面,因此它会计算所有方面,而不仅仅是那些与查询匹配的方面,即搜索"q=name:shirt"它应该返回

jackets (10)
shirts (5)

我尝试添加facet.query参数,但似乎没有效果。 facet.query=*:*仍会返回

jackets (0)
shirts (5)

如果我使用q=name:shirt

的查询

如何使用其他查询生成构面?我正在使用solr 5.5.0

1 个答案:

答案 0 :(得分:0)

所以看起来facet.query是查询搜索结果中的方面查询 。解决方案是使用标签和排除,例如

q={!tag=name}name&facet=true&facet.field={!ex=name}category

因此,对于我要排除的每个查询,我都会对其进行标记,然后在facet.field的ex部分中引用它。

虽然我开始认为使用两个查询并简单地将构面结果缓存在应用服务器上可能会更好......