Search SOLR-如何将方面计数限制为resultset中返回的行
Search SOLR-如何将方面计数限制为resultset中返回的行,search,facet,solr,Search,Facet,Solr,/select/?q=*:*&行=100&面=on&面。字段=类别 我有大约10万个文档索引。但是我使用rows=100只返回100个文档。为类别返回的方面计数,但是返回所有索引文档的计数 我们能否以某种方式将facet限制为返回的结果集?i、 只有100行?对不起,但我认为这是不可能的。facet始终基于与查询匹配的所有文档。不是真正的答案,但可能比没有更好:结果分组功能(从主干中检出!): 其中facet.field=category类似于group.field=category,您将只获
/select/?q=*:*&行=100&面=on&面。字段=类别
我有大约10万个文档索引。但是我使用rows=100只返回100个文档。为类别返回的方面计数,但是返回所有索引文档的计数
我们能否以某种方式将facet限制为返回的结果集?i、 只有100行?对不起,但我认为这是不可能的。facet始终基于与查询匹配的所有文档。不是真正的答案,但可能比没有更好:结果分组功能(从主干中检出!):
其中facet.field=category类似于group.field=category,您将只获得指定数量的组(“facet命中数”) 如果总是执行相同的查询
(q=*:*)
,可能可以使用facet.limit,例如:
select/?q=*:*&rows=100&facet=on&facet.field=category&facet.limit=100
告诉我们solr在方面中使用的顺序是否与查询中使用的顺序相同: 正如帕斯卡所指出的那样,我认为这是不可能的 我可以看到两种方法来实现这一点:
选择/?q=:&facet=on&facet.field=category&fq=id:(312)
或28或1231…
第一种方法更有效,我建议使用非文本文件。第二种方法的计算成本很高,但其优点是适用于所有类型的od字段。如果您想知道,可能会重复lakh==100000。首先回答您的问题-是的,方面的顺序与查询中的顺序相同。但是,这里我们不能将facet.limit用作facet.limit,它只限制要返回的facet的数量。它不限制结果集。因此,选择/?q=*:*&行=100&facet=on&facet.field=category&facet.limit=100将只返回100个类别值。正如这里的要求一样,它不会将结果集限制为100。down Vote as facet.limit只限制返回的facet的数量,而不是操作的行数,正如上面的评论所指出的,我认为这是对我的查询的回答,非常不幸的是,这个功能尚未在SOLR中实现。在一个拥有大量数据的生产服务器上,上面链接的另一个问题中所述的黑客行为也没有真正的价值。如果SOLR创建者能在不久的将来实现此功能,我们将不胜感激