鸬鹚洲 发表于 2017-12-19 10:34:31

8.solr学习速成之FacetPivot

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();
  }
  
}
页: [1]
查看完整版本: 8.solr学习速成之FacetPivot