1

如何在 Solr 中对分面计数进行分页?,我知道我有 facet.offset 来跳过记录,但是我怎么知道有多少条记录有分面?

4

2 回答 2

2

您需要应用 Solr Patch SOLR-2242来获取 Facet 不同计数。
总计数有助于分页。

于 2012-05-26T09:36:26.003 回答
0

在 Solr 5.3 及以上版本中,使用 facet 获取文档总数,

对于那个简单的用途,

facet=on

例如

http://<solr-url>/select?facet=on&indent=on&q=*:*&rows=0&wt=json

然后你会得到一个 facets 对象作为响应,它看起来像,

{
  "responseHeader":{
    "zkConnected":true,
    "status":0,
    "QTime":3,
    "params":{
      "q":"*:*",
      "indent":"on",
      "rows":"0",
      "facet":"on",
      "wt":"json"}},
  "response":{"numFound":8,"start":0,"maxScore":1.0,"docs":[]
  },
  "facet_counts":{
    "facet_queries":{},
    "facet_fields":{},
    "facet_ranges":{},
    "facet_intervals":{},
    "facet_heatmaps":{}}
}

numFoundresponse,这是该 solr 核心中的记录总数

其他方式

如果您有任何方面查询,请使用,

facet=on&json.facet={}

例如

http://<solr-url>/select?facet=on&indent=on&json.facet={}&q=*:*&rows=0&wt=json

然后你会得到一个 facets 对象作为响应,它看起来像,

{
  "responseHeader":{
    "zkConnected":true,
    "status":0,
    "QTime":3,
    "params":{
      "json.facet":"{}",
      "q":"*:*",
      "indent":"on",
      "rows":"0",
      "facet":"on",
      "wt":"json"}},
  "response":{"numFound":80,"start":0,"maxScore":1.0,"docs":[]
  },
  "facet_counts":{
    "facet_queries":{},
    "facet_fields":{},
    "facet_ranges":{},
    "facet_intervals":{},
    "facet_heatmaps":{}},
  "facets":{
    "count":80}}

from facetsobject 你得到count的,这是最大记录数

于 2016-08-25T10:30:15.533 回答