/select/?q=*:*&rows=100&facet=on&facet.field=category
我有大约 100 000 个文档被索引。但是我使用 rows=100 只返回 100 个文档。返回类别的构面计数,但返回所有索引文档的计数。
我们可以以某种方式将方面限制为返回的结果集吗?即只有100行?
正如 Pascal 指出的那样,我认为这不可能以任何直接的方式进行。
我可以看到两种方法来实现这一点:
方法一:自己数数访问返回的100个结果。如果它们是分类字段,这非常容易和快速,但如果它们是需要标记化的文本字段等,则更难。
方法二:做两遍:
select/?q=:&facet=on&facet.field=category&fq=id:(312
OR 28 OR 1231 ...)
第一个是更有效的方式,我建议非文本字段。第二种计算成本高,但具有适用于所有类型 od 字段的优势。
对不起,但我不认为这是可能的。构面始终基于与查询匹配的所有文档。
如果你总是执行相同的查询(q=*:*)
,也许你可以使用 facet.limit,例如:
select/?q=*:*&rows=100&facet=on&facet.field=category&facet.limit=100
告诉我们 solr 在构面中使用的顺序是否与查询中的顺序相同:。
不是一个真正的答案,但也许总比没有好:结果分组功能(从主干检查!):
http://wiki.apache.org/solr/FieldCollapsing
其中 facet.field=category 类似于 group.field=category 并且您将只获得与您指定的一样多的组('facet hits')!