Example usage for org.apache.solr.client.solrj SolrQuery setFacetLimit

List of usage examples for org.apache.solr.client.solrj SolrQuery setFacetLimit

Introduction

In this page you can find the example usage for org.apache.solr.client.solrj SolrQuery setFacetLimit.

Prototype

public SolrQuery setFacetLimit(int lim) 

Source Link

Document

set the facet limit

Usage

From source file:org.hoteia.qalingo.core.solr.service.ProductMarketingSolrService.java

License:Apache License

public ProductMarketingResponseBean searchProductMarketing(final String searchQuery, final String facetField,
        final BigDecimal priceStart, final BigDecimal priceEnd, final List<String> filterQueries)
        throws SolrServerException, IOException {
    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setParam("rows", ROWS_DEFAULT_VALUE);

    solrQuery.setQuery(searchQuery);//from  w  w  w .j  a va 2 s .c  om

    if (StringUtils.isNotEmpty(facetField)) {
        solrQuery.setFacet(true);
        solrQuery.setFacetMinCount(1);
        solrQuery.setFacetLimit(8);
        solrQuery.addFacetField(facetField);
    }

    for (Iterator<String> iterator = filterQueries.iterator(); iterator.hasNext();) {
        String filterQuery = (String) iterator.next();
        solrQuery.addFilterQuery(filterQuery);
    }

    logger.debug("QueryRequest solrQuery: " + solrQuery);

    SolrRequest request = new QueryRequest(solrQuery, METHOD.POST);
    QueryResponse response = new QueryResponse(productMarketingSolrServer.request(request),
            productMarketingSolrServer);

    logger.debug("QueryResponse Obj: " + response.toString());

    List<ProductMarketingSolr> solrList = response.getBeans(ProductMarketingSolr.class);
    ProductMarketingResponseBean productMarketingResponseBean = new ProductMarketingResponseBean();
    productMarketingResponseBean.setProductMarketingSolrList(solrList);

    if (StringUtils.isNotEmpty(facetField)) {
        List<FacetField> solrFacetFieldList = response.getFacetFields();
        productMarketingResponseBean.setProductMarketingSolrFacetFieldList(solrFacetFieldList);
    }
    return productMarketingResponseBean;
}

From source file:org.hoteia.qalingo.core.solr.service.ProductMarketingSolrService.java

License:Apache License

public ProductMarketingResponseBean searchProductMarketing() throws SolrServerException, IOException {
    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setParam("rows", ROWS_DEFAULT_VALUE);
    solrQuery.setQuery("*");
    solrQuery.setFacet(true);/*from  w ww  . ja v  a 2  s .  c  o  m*/
    solrQuery.setFacetMinCount(1);
    solrQuery.setFacetLimit(8);
    solrQuery.addFacetField(ProductMarketingResponseBean.PRODUCT_MARKETING_SEARCH_FIELD_CATEGORIES_CODE);

    logger.debug("QueryRequest solrQuery: " + solrQuery);

    SolrRequest request = new QueryRequest(solrQuery, METHOD.POST);

    QueryResponse response = new QueryResponse(productMarketingSolrServer.request(request),
            productMarketingSolrServer);

    logger.debug("QueryResponse Obj: " + response.toString());

    List<ProductMarketingSolr> solrList = response.getBeans(ProductMarketingSolr.class);
    List<FacetField> solrFacetFieldList = response.getFacetFields();

    ProductMarketingResponseBean productMarketingResponseBean = new ProductMarketingResponseBean();
    productMarketingResponseBean.setProductMarketingSolrList(solrList);
    productMarketingResponseBean.setProductMarketingSolrFacetFieldList(solrFacetFieldList);

    return productMarketingResponseBean;
}

From source file:org.hoteia.qalingo.core.solr.service.ProductSkuSolrService.java

License:Apache License

public ProductSkuResponseBean searchProductSku(String searchBy, String searchText, String facetField)
        throws SolrServerException, IOException {
    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setParam("rows", ROWS_DEFAULT_VALUE);

    if (StringUtils.isEmpty(searchBy)) {
        throw new IllegalArgumentException("SearchBy field can not be Empty or Blank!");
    }/*from w ww.  j  av  a2s .c om*/

    if (StringUtils.isEmpty(searchText)) {
        solrQuery.setQuery(searchBy + ":*");
    } else {
        solrQuery.setQuery(searchBy + ":" + searchText + "*");
    }

    if (StringUtils.isNotEmpty(facetField)) {
        solrQuery.setFacet(true);
        solrQuery.setFacetMinCount(1);
        solrQuery.setFacetLimit(8);
        solrQuery.addFacetField(facetField);
    }

    logger.debug("QueryRequest solrQuery: " + solrQuery);

    SolrRequest request = new QueryRequest(solrQuery, METHOD.POST);

    QueryResponse response = new QueryResponse(productSkuSolrServer.request(request), productSkuSolrServer);

    logger.debug("QueryResponse Obj: " + response.toString());

    List<ProductSkuSolr> solrList = response.getBeans(ProductSkuSolr.class);
    ProductSkuResponseBean productResponseBean = new ProductSkuResponseBean();
    productResponseBean.setProductSkuSolrList(solrList);

    if (StringUtils.isNotEmpty(facetField)) {
        List<FacetField> solrFacetFieldList = response.getFacetFields();
        productResponseBean.setProductSkuSolrFacetFieldList(solrFacetFieldList);
    }
    return productResponseBean;
}

From source file:org.hoteia.qalingo.core.solr.service.ProductSkuSolrService.java

License:Apache License

public ProductSkuResponseBean searchProductSku() throws SolrServerException, IOException {
    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setParam("rows", ROWS_DEFAULT_VALUE);

    solrQuery.setQuery("*");
    solrQuery.setFacet(true);//  ww w.j  a v  a2 s  . c  om
    solrQuery.setFacetMinCount(1);
    solrQuery.setFacetLimit(8);
    solrQuery.addFacetField("name");
    solrQuery.addFacetField("code");

    logger.debug("QueryRequest solrQuery: " + solrQuery);

    SolrRequest request = new QueryRequest(solrQuery, METHOD.POST);

    QueryResponse response = new QueryResponse(productSkuSolrServer.request(request), productSkuSolrServer);

    logger.debug("QueryResponse Obj: " + response.toString());

    List<ProductSkuSolr> solrList = response.getBeans(ProductSkuSolr.class);
    List<FacetField> solrFacetFieldList = response.getFacetFields();

    ProductSkuResponseBean productSkuResponseBean = new ProductSkuResponseBean();
    productSkuResponseBean.setProductSkuSolrList(solrList);
    productSkuResponseBean.setProductSkuSolrFacetFieldList(solrFacetFieldList);

    return productSkuResponseBean;
}

From source file:org.hoteia.qalingo.core.solr.service.StoreSolrService.java

License:Apache License

public StoreResponseBean searchStore(String searchBy, String searchText, List<String> facetFields,
        List<String> cities, List<String> countries) throws SolrServerException, IOException {
    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setParam("rows", ROWS_DEFAULT_VALUE);

    if (StringUtils.isEmpty(searchBy)) {
        throw new IllegalArgumentException("SearchBy field can not be Empty or Blank!");
    }//from w  ww.j ava  2s .co  m

    if (StringUtils.isEmpty(searchText)) {
        solrQuery.setQuery(searchBy + ":*");
    } else {
        solrQuery.setQuery(searchBy + ":" + searchText + "*");
    }

    if (facetFields != null && facetFields.size() > 0) {
        solrQuery.setFacet(true);
        solrQuery.setFacetMinCount(1);
        solrQuery.setFacetLimit(30);
        for (String facetField : facetFields) {
            solrQuery.addFacetField(facetField);
        }
    }

    if (cities != null && cities.size() > 0) {
        StringBuilder fq = new StringBuilder("city:(");
        for (int i = 0; i < cities.size(); i++) {
            String city = cities.get(i);
            fq.append('"' + city + '"');
            if (i < cities.size() - 1) {
                fq.append(" OR ");
            }
        }
        fq.append(")");
        solrQuery.addFilterQuery(fq.toString());
    }
    if (countries != null && countries.size() > 0) {
        StringBuilder fq = new StringBuilder("countrycode:(");
        for (int i = 0; i < countries.size(); i++) {
            String country = countries.get(i);
            fq.append('"' + country + '"');
            if (i < countries.size() - 1) {
                fq.append(" OR ");
            }
        }
        fq.append(")");
        solrQuery.addFilterQuery(fq.toString());
    }

    logger.debug("QueryRequest solrQuery: " + solrQuery);

    SolrRequest request = new QueryRequest(solrQuery, METHOD.POST);

    QueryResponse response = new QueryResponse(storeSolrServer.request(request), storeSolrServer);

    logger.debug("QueryResponse Obj: " + response.toString());

    List<StoreSolr> solrList = response.getBeans(StoreSolr.class);
    StoreResponseBean storeResponseBean = new StoreResponseBean();
    storeResponseBean.setStoreSolrList(solrList);

    if (facetFields != null && facetFields.size() > 0) {
        List<FacetField> solrFacetFieldList = response.getFacetFields();
        storeResponseBean.setStoreSolrFacetFieldList(solrFacetFieldList);
    }
    return storeResponseBean;
}

From source file:org.hoteia.qalingo.core.solr.service.StoreSolrService.java

License:Apache License

public StoreResponseBean searchStore() throws SolrServerException, IOException {
    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setParam("rows", ROWS_DEFAULT_VALUE);

    solrQuery.setQuery("*");
    solrQuery.setFacet(true);//from ww w  .ja  v  a  2s  .c o  m
    solrQuery.setFacetMinCount(1);
    solrQuery.setFacetLimit(8);
    solrQuery.addFacetField("name");

    logger.debug("QueryRequest solrQuery: " + solrQuery);

    SolrRequest request = new QueryRequest(solrQuery, METHOD.POST);

    QueryResponse response = new QueryResponse(storeSolrServer.request(request), storeSolrServer);

    logger.debug("QueryResponse Obj: " + response.toString());

    List<StoreSolr> solrList = response.getBeans(StoreSolr.class);
    List<FacetField> solrFacetFieldList = response.getFacetFields();
    StoreResponseBean storeResponseBean = new StoreResponseBean();
    storeResponseBean.setStoreSolrList(solrList);
    storeResponseBean.setStoreSolrFacetFieldList(solrFacetFieldList);
    return storeResponseBean;
}

From source file:org.kuali.ole.docstore.engine.service.rest.DocstoreRestClient_UT.java

License:Open Source License

public void searchBibWithFacets(String facetSort) throws Exception {
    String[] facets = { "Author_facet", "Format_facet", "Genre_facet", "Language_facet",
            "PublicationDate_facet", "PublicationDate_sort" };
    String[] fieldList = { "LocalId_display", "Title_sort", "Title_display", "JournalTitle_display",
            "Author_display", "Publisher_display", "ISBN_display", "ISSN_display", "Subject_display",
            "Publisher_display", "PublicationDate_display", "Edition_display", "Format_display",
            "Language_display", "Description_display", "FormGenre_display", "DocFormat", "staffOnlyFlag",
            "bibIdentifier", "holdingsIdentifier" };
    String args = "(DocType:bibliographic)AND((*:*))";
    SolrServer solr = SolrServerManager.getInstance().getSolrServer();
    SolrQuery query = new SolrQuery();
    query.setQuery(args);/*from ww w .ja v  a  2 s.  com*/
    query.setFacet(true);
    query.addFacetField(facets);
    query.setFacetMinCount(1);
    query.setFacetSort(facetSort);
    query.setFacetLimit(5);
    query.setFields(fieldList);
    query.set("facet.offset", "0");
    QueryResponse response = solr.query(query);
    System.out.println("Search result count " + response.getResults().getNumFound()
            + " and  time taken to search is " + response.getQTime());
}

From source file:org.mousephenotype.cda.indexers.MPIndexer.java

License:Apache License

private RunStatus populateMpCallMaps(Map<String, Synonym> synonyms)
        throws IOException, SolrServerException, URISyntaxException, JSONException {
    RunStatus status = new RunStatus();

    List<SolrClient> ss = new ArrayList<>();

    ss.add(genotypePhenotypeCore);/*from www . j a  v a2s  .c om*/

    for (int i = 0; i < ss.size(); i++) {

        SolrClient solrSvr = ss.get(i);
        SolrQuery query = new SolrQuery();
        query.setQuery("*:*");
        query.setFacet(true);
        query.setRows(0);
        query.addFacetField(GenotypePhenotypeDTO.MP_TERM_ID);
        query.addFacetField(GenotypePhenotypeDTO.INTERMEDIATE_MP_TERM_ID);
        query.addFacetField(GenotypePhenotypeDTO.TOP_LEVEL_MP_TERM_ID);
        query.setFacetLimit(-1);

        for (FacetField facetGroup : solrSvr.query(query).getFacetFields()) {
            for (FacetField.Count facet : facetGroup.getValues()) {
                if (!mpCalls.containsKey(facet.getName())) {
                    mpCalls.put(facet.getName(), new Long(0));

                    Map<String, Integer> geneVariantCount = getPhenotypeGeneVariantCounts(facet.getName(),
                            status, synonyms);
                    int gvCount = geneVariantCount.get("sumCount");
                    mpGeneVariantCount.put(facet.getName(), gvCount);
                }
                mpCalls.put(facet.getName(), facet.getCount() + mpCalls.get(facet.getName()));

            }
        }
    }

    return status;
}

From source file:org.mousephenotype.cda.solr.service.AlleleService.java

License:Apache License

/**
 *
 * @param geneIds the input set of gene ids
 * @param statusField the status field/*  w w w .ja v  a2s.  c  o m*/
 * @return Number of genes (from the provided list) in each status of interest.
 */
public HashMap<String, Long> getStatusCount(Set<String> geneIds, String statusField) {

    HashMap<String, Long> res = new HashMap<>();
    SolrQuery solrQuery = new SolrQuery();
    QueryResponse solrResponse;

    if (geneIds != null) {
        String geneQuery = AlleleDTO.MGI_ACCESSION_ID + ":("
                + StringUtils.join(geneIds, " OR ").replace(":", "\\:") + ")";
        solrQuery.setQuery(geneQuery);
    } else {
        solrQuery.setQuery("*:*");
    }
    solrQuery.setRows(1);
    solrQuery.setFacet(true);
    solrQuery.setFacetLimit(-1);
    try {
        solrQuery.addFacetField(statusField);
        solrResponse = alleleCore.query(solrQuery);
        for (Count c : solrResponse.getFacetField(statusField).getValues()) {
            res.put(c.getName(), c.getCount());
        }
    } catch (SolrServerException | IOException e) {
        e.printStackTrace();
    }

    return res;
}

From source file:org.mousephenotype.cda.solr.service.AlleleService.java

License:Apache License

public TreeMap<String, Long> getStatusCountByPhenotypingCenter(String center, String statusField) {

    TreeMap<String, Long> res = new TreeMap<>(new PhenotypingStatusComparator());
    SolrQuery solrQuery = new SolrQuery();
    QueryResponse solrResponse;//from  ww w.j a  va 2  s  . c o m

    if (center != null) {
        String geneQuery = AlleleDTO.LATEST_PHENOTYPING_CENTRE + ":\"" + center + "\"";
        solrQuery.setQuery(geneQuery);
    } else {
        solrQuery.setQuery("*:*");
    }

    solrQuery.setRows(1);
    solrQuery.setFacet(true);
    solrQuery.setFacetLimit(-1);
    try {
        solrQuery.addFacetField(statusField);
        solrResponse = alleleCore.query(solrQuery);
        for (Count c : solrResponse.getFacetField(statusField).getValues()) {
            // We don't want to show everything
            if (!(c.getName().equalsIgnoreCase("Cre Excision Started") || c.getName().equals(""))) {
                res.put(c.getName(), c.getCount());
            }
        }
    } catch (SolrServerException | IOException e) {
        e.printStackTrace();
    }
    return res;
}