SOLR - 如何将构面计数限制为结果集中返回的行

use*_*895 8 search solr facet

/select/?q=*:*&rows=100&facet=on&facet.field=category

我有大约10万个索引的文件.但我只使用rows = 100返回100个文档.为类别返回的构面计数,但返回索引的所有文档的计数.

我们可以以某种方式将facet限制为返回的结果集吗?即仅100行?

Hug*_*oza 5

正如Pascal所指出的那样,我认为不可能以任何直接的方式进行.

我可以看到两种方法来实现这一目标:

  1. 方法I:自己计算访问返回的100个结果.如果它们是分类字段,则非常容易和快速,但如果它们是需要标记化的文本字段,则更难.

  2. 方法二:做两遍:

    1. 在没有构面的情况下执行常规查询(此时只需要请求文档ID)
    2. 收集返回文档的所有ID
    3. 对所有字段和构面执行第二次查询,添加过滤器以将结果限制为在setp 2中收集的ID.类似于:
      select/?q=:&facet=on&facet.field=category&fq=id:(312 OR 28 OR 1231 ...)

第一种方式更有效,我建议非文本的filds.第二种是计算上昂贵的,但具有适用于所有类型的领域的优点.


Pas*_*imo 2

抱歉,但我认为这是不可能的。方面始终基于与查询匹配的所有文档。