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

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

Introduction

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

Prototype

public SolrQuery addFacetField(String... fields) 

Source Link

Document

Add field(s) for facet computation.

Usage

From source file:org.lareferencia.xoai.services.impl.xoai.LRSetRepository.java

License:BSD License

private List<FacetField.Count> getFacetValues(String facetFieldName) {

    try {/* w  w  w .j a  v  a  2  s.c o  m*/

        SolrQuery query = new SolrQuery("*:*");
        query.setRows(0);
        query.setFacet(true);
        query.addFacetField(facetFieldName);

        QueryResponse response = solrServer.query(query);

        return response.getFacetFields().get(0).getValues();

    } catch (SolrServerException e) {

        log.error(e.getMessage(), e);

        e.printStackTrace();
    }

    List<FacetField.Count> list = new ArrayList<FacetField.Count>();

    return list;
}

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.  ja  v a  2 s. co  m

    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.repositories.image.ImagesSolrJ.java

License:Apache License

private QueryResponse runFacetQuery(String query, String facetField, int start, int length, String filterQuery)
        throws SolrServerException, IOException {

    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery(query);//from w  ww . j  av a  2 s.  co  m
    solrQuery.setStart(start);
    solrQuery.setRows(length);
    solrQuery.setFacet(true);
    solrQuery.setFacetMinCount(1);
    solrQuery.addFacetField(facetField);
    if (filterQuery != "") {
        solrQuery.addFilterQuery(filterQuery);
    }

    return sangerImagesCore.query(solrQuery);

}

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/*from   ww  w  .  j av a2 s . 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 av  a 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;
}

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

License:Apache License

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

    TreeMap<String, Long> res = new TreeMap<>(new ProductionStatusComparator());
    SolrQuery solrQuery = new SolrQuery();
    QueryResponse solrResponse;/*  w w w .ja  v a2  s. c o  m*/

    if (center != null) {
        String geneQuery = AlleleDTO.LATEST_PRODUCTION_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().equals("")) {
                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 Set<String> getFacets(String field) {
    SolrQuery solrQuery = new SolrQuery();
    QueryResponse solrResponse;//from ww w .  ja v a2s .c  o m
    Set<String> res = new HashSet<>();
    solrQuery.setQuery("*:*");
    solrQuery.setFacet(true);
    solrQuery.setFacetLimit(-1);
    solrQuery.addFacetField(field);

    logger.info(this.getClass().getEnclosingMethod() + "   " + SolrUtils.getBaseURL(alleleCore) + "/select?"
            + solrQuery);

    try {
        solrResponse = alleleCore.query(solrQuery);
        for (Count c : solrResponse.getFacetField(field).getValues()) {
            res.add(c.getName());
        }
    } catch (SolrServerException | IOException e) {
        e.printStackTrace();
    }
    return res;
}

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

License:Apache License

private QueryResponse getAdultLaczImageFacetsForGene(String mgiAccession, String parameterStableId,
        String... fields) throws SolrServerException, IOException {

    //solrQuery.addFilterQuery(ImageDTO.PARAMETER_NAME + ":\"LacZ Images Section\" OR " + ImageDTO.PARAMETER_NAME
    //      + ":\"LacZ Images Wholemount\"");// reduce the number to image
    // e.g.//from  w w w. ja va  2s . co  m
    // http://ves-ebi-d0.ebi.ac.uk:8090/mi/impc/dev/solr/impc_images/select?q=gene_accession_id:%22MGI:1920455%22&facet=true&facet.field=selected_top_level_ma_term&fq=(parameter_name:%22LacZ%20Images%20Section%22%20OR%20parameter_name:%22LacZ%20Images%20Wholemount%22)
    // for embryo data the fields would be like this
    // "parameter_name": "LacZ images section",
    // "procedure_name": "Embryo LacZ",

    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery(ImageDTO.GENE_ACCESSION_ID + ":\"" + mgiAccession + "\"");
    if (!StringUtils.isEmpty(parameterStableId)) {
        solrQuery.addFilterQuery(ImageDTO.PARAMETER_STABLE_ID + ":" + parameterStableId);// reduce the number to image
        // parameters only as we are
        // talking about images not
        // expression data here
    }
    solrQuery.setFacetMinCount(1);
    solrQuery.setFacet(true);
    solrQuery.setFields(fields);
    solrQuery.addFacetField(ImageDTO.SELECTED_TOP_LEVEL_ANATOMY_TERM);
    solrQuery.setRows(Integer.MAX_VALUE);
    QueryResponse response = impcImagesCore.query(solrQuery);
    return response;
}

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

License:Apache License

public List<Count> getLaczCategoricalParametersForGene(String mgiAccession, String... fields)
        throws SolrServerException, IOException {
    // e.g./*from  w  w w.  j av a  2 s  . c  o m*/
    // http://ves-ebi-d0.ebi.ac.uk:8090/mi/impc/dev/solr/impc_images/select?q=gene_accession_id:%22MGI:1920455%22&facet=true&facet.field=selected_top_level_ma_term&fq=(parameter_name:%22LacZ%20Images%20Section%22%20OR%20parameter_name:%22LacZ%20Images%20Wholemount%22)
    // for embryo data the fields would be like this
    // "parameter_name": "LacZ images section",
    // "procedure_name": "Embryo LacZ",

    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery(ImageDTO.GENE_ACCESSION_ID + ":\"" + mgiAccession + "\"");

    solrQuery.addFilterQuery(ImageDTO.PROCEDURE_NAME + ":\"Adult LacZ\"");
    solrQuery.addFilterQuery("-" + ImageDTO.PARAMETER_NAME + ":\"LacZ Images Section\"");
    solrQuery.addFilterQuery("-" + ImageDTO.PARAMETER_NAME + ":\"LacZ Images Wholemount\"");
    solrQuery.addFilterQuery(ObservationDTO.CATEGORY + ":\"expression\"");
    // only look for expresssion at the moment as that is all the anatamogram can  display
    solrQuery.setFacetMinCount(1);
    solrQuery.setFacet(true);
    solrQuery.setFields(fields);
    solrQuery.addFacetField(ImageDTO.PARAMETER_STABLE_ID);
    solrQuery.setRows(0);
    QueryResponse response = experimentCore.query(solrQuery);
    List<FacetField> categoryParameterFields = response.getFacetFields();

    return categoryParameterFields.get(0).getValues();
}

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

License:Apache License

private QueryResponse getEmbryoLaczImageFacetsForGene(String mgiAccession, String parameterStableId,
        String... fields) throws SolrServerException, IOException {
    //solrQuery.addFilterQuery(ImageDTO.PARAMETER_STABLE_ID + ":IMPC_ELZ_064_001" + " OR "
    //+ ImageDTO.PARAMETER_STABLE_ID + ":IMPC_ELZ_063_001");
    // e.g.//from  w w  w . ja v  a 2s . co  m
    // http://ves-ebi-d0.ebi.ac.uk:8090/mi/impc/dev/solr/impc_images/select?q=gene_accession_id:%22MGI:1920455%22&facet=true&facet.field=selected_top_level_ma_term&fq=(parameter_name:%22LacZ%20Images%20Section%22%20OR%20parameter_name:%22LacZ%20Images%20Wholemount%22)
    // for embryo data the fields would be like this
    // "parameter_name": "LacZ images section",
    // "procedure_name": "Embryo LacZ",

    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery(ImageDTO.GENE_ACCESSION_ID + ":\"" + mgiAccession + "\"");
    solrQuery.addFilterQuery(ImageDTO.PARAMETER_STABLE_ID + ":" + parameterStableId);// reduce
    // the number to image parameters only as we are talking about images not expression data here
    solrQuery.setFacetMinCount(1);
    solrQuery.setFacet(true);
    solrQuery.setFields(fields);
    solrQuery.addFacetField(ImageDTO.SELECTED_TOP_LEVEL_ANATOMY_TERM);
    solrQuery.setRows(Integer.MAX_VALUE);
    solrQuery.setSort(ObservationDTO.ID, SolrQuery.ORDER.asc);
    QueryResponse response = impcImagesCore.query(solrQuery);
    return response;
}