如何在solr中获取queryresponse.getFacetField('xxx')的计数

时间:2014-08-14 11:28:42

标签: solr

我得到的结果是chennai(30),piler(40)。我只需要在结果中出现文件1计数。我怎么能在solr中做到这一点?就像在java中,如果我们有一个包含20个元素的arraylist,我们可以通过list.size()rite同样获得大小。

SolrQuery solrQuery1 = new SolrQuery(query1);
        solrQuery1.setFacet(true);
        solrQuery1.addFacetField('city');
        solrQuery1.setFacetMinCount(100);
        solrQuery1.setFacetLimit(9);
        solrQuery1.setQueryType("geo")
        solrQuery1.setParam("lat", city.latitude.toString())
        solrQuery1.setParam("long", city.longitude.toString())
        Double distanceInMiles = 300.0 * 0.621371192;
        solrQuery1.setParam("radius", distanceInMiles.toString());
        def server1 = solrService.getServer('provider')
        def queryResponse1 = server1.query(solrQuery1);
        def documents1 = queryResponse1.getFacetField('city');

1 个答案:

答案 0 :(得分:1)

根据您使用的SolrJ版本,您可以使用.getValueCount()(在最新版本中)或计算.getValues()返回的列表中的元素(通过调用.size() )旧版本。

要获得个人计数,getValues()上的FacetField会返回FacetField.Count个对象的列表。这些方法有两种方法可以检索值和计数getNamegetCount。它们分别返回条目的名称和该条目的计数。