我得到的结果是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');
答案 0 :(得分:1)
根据您使用的SolrJ版本,您可以使用.getValueCount()
(在最新版本中)或计算.getValues()
返回的列表中的元素(通过调用.size()
)旧版本。
要获得个人计数,getValues()
上的FacetField会返回FacetField.Count
个对象的列表。这些方法有两种方法可以检索值和计数getName
和getCount
。它们分别返回条目的名称和该条目的计数。