solr分组查询,
-
public static HttpSolrServer server = new HttpSolrServer("http://localhost:8080/solr/");
public static void main(String[] args) {
queryAll();
}
public static void queryAll(){
Map<String, Integer> rmap = new LinkedHashMap<String, Integer>();
try {
SolrQuery query = new SolrQuery();
query.setQuery("title:中国");//如果没有查询语句,必须这么写,否则会报异常
query.setIncludeScore(false);//是否按每组数量高低排序
query.setFacet(true);//是否分组查询
query.setRows(0);//设置返回结果条数,如果你时分组查询,你就设置为0
query.setFacetSort(true);//分组是否排序
query.setFacetLimit(4);//限制每次返回结果数
query.addFacetField("resourcetype");//增加分组字段
//query.addFacetField("price");//增加分组字段
query.addFacetQuery("price:[4 TO 5]");
// query.setSortField("price",asc ? SolrQuery.ORDER.asc :SolrQuery.ORDER.desc );//分组排序字段
QueryResponse rsp = server.query( query );
List<Count> returnList = rsp.getFacetField("price").getValues();//这里要和addFacetField相对应
for (Count count : returnList) {
if(count.getCount()>0)
rmap.put(count.getName(), (int) count.getCount());
}
System.out.println(rmap);
} catch (Exception e) {
e.printStackTrace();
}
}
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。