|
package com.liucheng.solr;
import java.io.IOException;
import java.util.List;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.PivotField;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.util.NamedList;
public>public static void>HttpSolrClient server = solrServer.getServer(); SolrQuery query
= new SolrQuery(); String para
= "*:*"; query.setFacet(
true); query.add(
"facet.pivot", "major_s,subMajor_s,brand_s");//多维度分组查询 query.setFacetLimit(100);//限制facet返回数量
query.setQuery(para);
try {
QueryResponse queryResponse = server.query(query,SolrRequest.METHOD.POST);
NamedList<List<PivotField>> namedList = queryResponse.getFacetPivot();
if(namedList != null){
List<PivotField> pivotList = null;
for(int i=0;i<namedList.size();i++){
pivotList = namedList.getVal(i);
if(pivotList != null){
for(PivotField pivot : pivotList){
System.out.println("一级:"+pivot.getValue()+" "+pivot.getCount());
List<PivotField> fieldList = pivot.getPivot();
if(fieldList!=null){
for(PivotField field : fieldList){
System.out.println("2级:"+field.getValue()+" "+field.getCount());
List<PivotField> fieldList1 = field.getPivot();
if(fieldList1!=null){
for(PivotField field1 : fieldList1){
System.out.println("3级:"+field1.getValue()+" "+field1.getCount());
}
}
}
}
}
}
}
}
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
facetPivotQuery();
}
} |
|
|