2012-05-25 3 views
1

Как в Solr я могу сделать разбиение на страницы по графу ?, Я знаю, что у меня есть facet.offset, чтобы пропустить записи, но как я знаю, сколько общих записей имеет грань?Solr facet pagination

+0

'facet.query' для«сколько всего записей имеют огранку»? – aitchnyu

ответ

2

Вам необходимо установить Solr Patch SOLR-2242, чтобы получить счетчик Facet.
Общее кол-во может быть полезно для разбивки на страницы.

0

В Solr 5.3 и выше использование фаски, чтобы получить общее количество документов,

для этого просто использовать,

facet=on 

, например

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

тогда вы получите объект Грани в ответ это будет выглядеть,

{ 
    "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":{}} 
} 

вы получаете numFound от response, что общее количество записей в этом SOLR ядра

другой способ

если у вас есть какие-либо аспект запроса, использование,

facet=on&json.facet={} 

, например

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

, тогда вы получаете фасеты объекта в ответ, он будет выглядеть,

{ 
    "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}} 

от facets объекта вы получаете count, что максимальное количество записей