在solr中搜索radius以获得结果

时间:2014-08-13 18:23:07

标签: solr

我有两个db表city和provider where。

  1. city:id,name,Longitude,Latitude
  2. 提供商:ID,CITY_NAME,类型,member_id
  3. 现在我想做一个300公里半径的搜索说来自城市Ex:班加罗尔以获得提供商的数量> 100(表示provider.city_name = city.name)。

    我正在进行分面搜索

    solrQuery.setFacet(true);
            solrQuery.addFacetField('city');
            solrQuery.setQueryType("geo")
            solrQuery.setParam("lat", city.latitude.toString())
            solrQuery.setParam("long", city.longitude.toString())
            Double distanceInMiles = 500.0 * 0.621371192;
            solrQuery.setParam("radius", distanceInMiles.toString());
            def server = solrService.getServer('provider')
    

    我将再次获得所有城市和foreach(在java)城市我正在运行检查天气在该城市有超过100个提供商。有什么更好的方法在solr中做到这一点????

1 个答案:

答案 0 :(得分:0)

您可以使用.setFacetMinCount(100)仅获取计数超过100的方面值。这意味着您的方面值仅包含至少有100个提供商的城市。