/select/?q=*:*&rows=100&facet=on&facet.field=category
我有大约10万个索引的文件。但我只使用rows = 100返回100个文档。为类别返回的构面计数,但返回索引的所有文档的计数。
我们可以某种方式将facet限制为返回的结果集吗?那只有100行?
答案 0 :(得分:5)
正如帕斯卡所指出的那样,我认为不可能以任何直接的方式进行。
我可以看到两种方法来实现这一目标:
方法I:自行计算,返回返回的100个结果。如果它们是分类字段,则非常简单快速,但如果它们是需要标记化的文本字段等,则更难。
方法II:做两遍:
select/?q=:&facet=on&facet.field=category&fq=id:(312
OR 28 OR 1231 ...)
第一种方式更有效率,我建议非文本的filds。第二个是计算上昂贵的,但具有适用于所有类型的领域的优势。
答案 1 :(得分:1)
抱歉,但我认为不可能。构面始终基于与查询匹配的所有文档。
答案 2 :(得分:0)
不是真正的答案,但也许比什么都好:结果分组功能(从主干检查!):
http://wiki.apache.org/solr/FieldCollapsing
其中facet.field = category类似于group.field = category,你只会得到你指定的那么多组('facet hits')!
答案 3 :(得分:0)
如果您始终执行相同的查询(q=*:*)
,也许您可以使用facet.limit,例如:
select/?q=*:*&rows=100&facet=on&facet.field=category&facet.limit=100
告诉我们solr使用的顺序在构面中是否与查询:中相同。