Example usage for org.apache.solr.client.solrj.response RangeFacet.Count getName

List of usage examples for org.apache.solr.client.solrj.response RangeFacet.Count getName

Introduction

In this page you can find the example usage for org.apache.solr.client.solrj.response RangeFacet.Count getName.

Prototype

public String getName() 

Source Link

Usage

From source file:org.vroyer.hive.solr.SolrTableCursor.java

License:Open Source License

private void fetchNextDocumentChunk() throws IOException {
    SolrQuery query = new SolrQuery();
    query.setStart(start);/*from   www  . ja v  a 2  s  .c  om*/

    if (table.facetType == null) {
        query.setRows(Math.min(count, this.solrSplitSize));
        for (String s : table.fields) {
            // Don't push solr_query, this is an internal column when a cassandra table is indexed by SOLR.
            if (!s.equalsIgnoreCase("solr_query")) {
                query.addField(s);
            }
        }
    } else {
        query.setRows(0);
    }

    List<NameValuePair> params = URLEncodedUtils.parse(table.qs, Charset.forName("UTF-8"));
    for (NameValuePair nvp : params) {
        query.set(nvp.getName(), nvp.getValue());
    }
    if (table.fq.length() > 0) {
        query.set("fq", table.fq.toString());
    }
    if (table.q.length() > 0) {
        query.set("q", table.q.toString());
    }
    if (query.get("q") == null) {
        query.set("q", "*:*");
    }

    if (log.isInfoEnabled()) {
        StringBuffer sb = new StringBuffer("");
        Map<String, String[]> map = query.toMultiMap(query.toNamedList());
        for (String s : map.keySet()) {
            sb.append(s).append('=').append(Arrays.toString(map.get(s))).append(' ');
        }
        log.info("SOLR request: " + sb.toString());
    }

    checkRequiredFilterFields();

    QueryResponse response;
    try {
        response = server.query(query);
    } catch (SolrServerException e) {
        throw new IOException(e);
    }

    if (table.facetType != null) {
        if (table.facetType.equalsIgnoreCase("ranges")) {
            List<RangeFacet.Count> counts = response.getFacetRanges().get(0).getCounts();
            for (RangeFacet.Count rfc : counts) {
                facets.add(new FacetEntry(rfc.getValue(), rfc.getCount()));
            }
        } else if (table.facetType.equalsIgnoreCase("fields")) {
            List<FacetField.Count> counts = response.getFacetFields().get(0).getValues();
            for (FacetField.Count rfc : counts) {
                facets.add(new FacetEntry(rfc.getName(), rfc.getCount()));
            }
        } else if (table.facetType.equalsIgnoreCase("queries")) {
            Map<String, Integer> queries = response.getFacetQuery();
            for (String k : queries.keySet()) {
                facets.add(new FacetEntry(k, queries.get(k)));
            }
        }
    } else {
        buffer = response.getResults();
        numFound = buffer.getNumFound();
        log.info("SOLR response numFound=" + buffer.getNumFound());
        start += buffer.size();
        count -= buffer.size();
    }
    pos = 0;
}