即使值处于活动状态,如何在构面块中显示所有值?

时间:2016-05-23 12:21:02

标签: solr solrj

我有facet块,看起来像:

Categories:
[ ] Category 1
[ ] Category 2
[ ] Category 3
[ ] Category 4

使用ss_category字段(单字符串字段)表示类别。选择某个类别后,所有其他类别都会消失,这会使该块看起来像:

Categories:
[X] Category 3

即使存在活动类别,我也需要显示所有其他类别,以便用户不必先取消激活活动类别,然后再单击另一个类别。换句话说,该块应如下所示:

Categories:
[ ] Category 1
[ ] Category 2
[X] Category 3
[ ] Category 4

我该如何实现这种行为?

感谢。

2 个答案:

答案 0 :(得分:0)

the example in LocalParams for faceting。这样您就可以标记fq,然后在创建构面时排除该过滤器。

该示例显示了文件结尾的完全相同的问题:

  

Q = mainquery&安培; FQ =状态:公共&安培; FQ = DOCTYPE {标签= DT!}:{!EX = DT} PDF&安培;小面=真安培facet.field = DOCTYPE

答案 1 :(得分:0)

我不知道您使用什么类型的客户端来查询Solr,但如果查询创建对您来说不是完全透明的,那么它就是一个过滤查询和相关的facet字段。

为了清楚起见,当您添加过滤器查询时,它也会影响构面创建。您要做的是从构面创建中排除过滤器查询。您可以在创建查询期间使用2步语法执行此操作。

  1. 在过滤器查询中添加标签,在您的示例中您必须更改

    fq=Categories:"Category 3" => fq={!tag=categoryTag}Categories:"Category 3"

  2. 然后您可以从构面生成中排除过滤器查询,因此请更改

    facet.field=Categories => facet.field={!ex=categoryTag}Categories