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

How do I use a different query for a facet count

搜索 q=*:*&facet=true&facet.field=category solr returns 类似:

jackets (10)
shirts (5)

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

jackets (0)
shirts (5)

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

jackets (10)
shirts (5)

我尝试添加一个 facet.query 参数,但似乎没有效果。 facet.query=*:*还是returns

jackets (0)
shirts (5)

如果我使用 q=name:shirt

的查询

如何使用不同的查询来生成构面?我正在使用 solr 5.5.0

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

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

因此,对于每个我想排除的查询,我都会对其进行标记,然后在 facet.field

的 ex 部分引用它

尽管我开始认为使用两个查询并在应用程序服务器上简单地缓存分面结果可能更好...