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

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

Introduction

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

Prototype

public SolrQuery setFacetMinCount(int cnt) 

Source Link

Document

set facet minimum count

Usage

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

License:Apache License

/**
 * @param zygosity - optional (pass null if not needed)
 * @return Map <String, Long> : <top_level_mp_name, number_of_annotations>
 * @author tudose// w w w  .jav  a2  s  .com
 */
public TreeMap<String, Long> getDistributionOfAnnotationsByMPTopLevel(ZygosityType zygosity,
        String resourceName) {

    SolrQuery query = new SolrQuery();

    if (zygosity != null) {
        query.setQuery(GenotypePhenotypeDTO.ZYGOSITY + ":" + zygosity.getName());
    } else if (resourceName != null) {
        query.setFilterQueries(GenotypePhenotypeDTO.RESOURCE_NAME + ":" + resourceName);
    } else {
        query.setQuery("*:*");
    }

    query.setFacet(true);
    query.setFacetLimit(-1);
    query.setFacetMinCount(1);
    query.setRows(0);
    query.addFacetField(GenotypePhenotypeDTO.TOP_LEVEL_MP_TERM_NAME);

    try {
        QueryResponse response = genotypePhenotypeCore.query(query);
        TreeMap<String, Long> res = new TreeMap<>();
        res.putAll(getFacets(response).get(GenotypePhenotypeDTO.TOP_LEVEL_MP_TERM_NAME));
        return res;
    } catch (SolrServerException | IOException e) {
        e.printStackTrace();
    }
    return null;
}

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

License:Apache License

public Map<String, Long> getHitsDistributionBySomethingNoIds(String fieldToDistributeBy,
        List<String> resourceName, ZygosityType zygosity, int facetMincount, Double maxPValue)
        throws SolrServerException, IOException, InterruptedException, ExecutionException {

    Map<String, Long> res = new HashMap<>();
    Long time = System.currentTimeMillis();
    SolrQuery q = new SolrQuery();

    if (resourceName != null) {
        q.setQuery(GenotypePhenotypeDTO.RESOURCE_NAME + ":"
                + StringUtils.join(resourceName, " OR " + GenotypePhenotypeDTO.RESOURCE_NAME + ":"));
    } else {/*w ww . java2s  .c  o m*/
        q.setQuery("*:*");
    }

    if (zygosity != null) {
        q.addFilterQuery(GenotypePhenotypeDTO.ZYGOSITY + ":" + zygosity.name());
    }

    if (maxPValue != null) {
        q.addFilterQuery(GenotypePhenotypeDTO.P_VALUE + ":[0 TO " + maxPValue + "]");
    }

    q.addFacetField(fieldToDistributeBy);
    q.setFacetMinCount(facetMincount);
    q.setFacet(true);
    q.setRows(1);
    q.set("facet.limit", -1);

    logger.info("Solr url for getHitsDistributionByParameter " + SolrUtils.getBaseURL(genotypePhenotypeCore)
            + "/select?" + q);
    QueryResponse response = genotypePhenotypeCore.query(q);

    for (Count facet : response.getFacetField(fieldToDistributeBy).getValues()) {
        String value = facet.getName();
        long count = facet.getCount();
        res.put(value, count);
    }

    logger.info("Done in " + (System.currentTimeMillis() - time));
    return res;

}

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

License:Apache License

public PhenotypeFacetResult getMPByGeneAccessionAndFilter(String accId, List<String> topLevelMpTermName,
        List<String> resourceFullname) throws IOException, URISyntaxException, JSONException {

    String solrUrl = SolrUtils.getBaseURL(genotypePhenotypeCore) + "/select?";
    SolrQuery q = new SolrQuery();

    q.setQuery(GenotypePhenotypeDTO.MARKER_ACCESSION_ID + ":\"" + accId + "\"");
    q.setRows(10000000);//  w  w w. j  av a  2 s .  c  o  m
    q.setFacet(true);
    q.setFacetMinCount(1);
    q.setFacetLimit(-1);
    q.addFacetField(GenotypePhenotypeDTO.TOP_LEVEL_MP_TERM_NAME);
    //q.addFacetField(GenotypePhenotypeDTO.RESOURCE_FULLNAME);
    q.set("wt", "json");
    q.setSort(GenotypePhenotypeDTO.P_VALUE, ORDER.asc);

    if (topLevelMpTermName != null) {
        q.addFilterQuery(GenotypePhenotypeDTO.TOP_LEVEL_MP_TERM_NAME + ":(\""
                + StringUtils.join(topLevelMpTermName, "\" OR \"") + "\")");
    }

    solrUrl += q;

    return createPhenotypeResultFromSolrResponse(solrUrl);
}

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

License:Apache License

public PhenotypeFacetResult getMPCallByMPAccessionAndFilter(String phenotype_id, List<String> procedureName,
        List<String> markerSymbol, List<String> mpTermName, Map<String, Synonym> synonyms)
        throws IOException, URISyntaxException, JSONException {

    String url = SolrUtils.getBaseURL(genotypePhenotypeCore) + "/select/?";
    SolrQuery q = new SolrQuery();

    q.setQuery("*:*");
    q.addFilterQuery("(" + GenotypePhenotypeDTO.MP_TERM_ID + ":\"" + phenotype_id + "\" OR "
            + GenotypePhenotypeDTO.TOP_LEVEL_MP_TERM_ID + ":\"" + phenotype_id + "\" OR "
            + GenotypePhenotypeDTO.INTERMEDIATE_MP_TERM_ID + ":\"" + phenotype_id + "\")");
    q.setRows(10000000);//  ww  w.  j  av a  2 s.com
    q.setFacet(true);
    q.setFacetMinCount(1);
    q.setFacetLimit(-1);
    q.addFacetField(GenotypePhenotypeDTO.PROCEDURE_NAME);
    q.addFacetField(GenotypePhenotypeDTO.MARKER_SYMBOL);
    q.addFacetField(GenotypePhenotypeDTO.MP_TERM_NAME);
    q.set("wt", "json");
    q.setSort(GenotypePhenotypeDTO.P_VALUE, ORDER.asc);

    q.setFields(GenotypePhenotypeDTO.MP_TERM_NAME, GenotypePhenotypeDTO.MP_TERM_ID,
            GenotypePhenotypeDTO.MPATH_TERM_NAME, GenotypePhenotypeDTO.MPATH_TERM_ID,
            GenotypePhenotypeDTO.EXTERNAL_ID, GenotypePhenotypeDTO.TOP_LEVEL_MP_TERM_ID,
            GenotypePhenotypeDTO.TOP_LEVEL_MP_TERM_NAME, GenotypePhenotypeDTO.ALLELE_SYMBOL,
            GenotypePhenotypeDTO.PHENOTYPING_CENTER, GenotypePhenotypeDTO.ALLELE_ACCESSION_ID,
            GenotypePhenotypeDTO.MARKER_SYMBOL, GenotypePhenotypeDTO.MARKER_ACCESSION_ID,
            GenotypePhenotypeDTO.PHENOTYPING_CENTER, GenotypePhenotypeDTO.ZYGOSITY, GenotypePhenotypeDTO.SEX,
            GenotypePhenotypeDTO.LIFE_STAGE_NAME, GenotypePhenotypeDTO.RESOURCE_NAME,
            GenotypePhenotypeDTO.PARAMETER_STABLE_ID, GenotypePhenotypeDTO.PARAMETER_NAME,
            GenotypePhenotypeDTO.PIPELINE_STABLE_ID, GenotypePhenotypeDTO.PROJECT_NAME,
            GenotypePhenotypeDTO.PROJECT_EXTERNAL_ID, GenotypePhenotypeDTO.P_VALUE,
            GenotypePhenotypeDTO.EFFECT_SIZE, GenotypePhenotypeDTO.PROCEDURE_STABLE_ID,
            GenotypePhenotypeDTO.PROCEDURE_NAME, GenotypePhenotypeDTO.PIPELINE_NAME);

    if (procedureName != null) {
        q.addFilterQuery(GenotypePhenotypeDTO.PROCEDURE_NAME + ":(\""
                + StringUtils.join(procedureName, "\" OR \"") + "\")");
    }
    if (markerSymbol != null) {
        q.addFilterQuery(GenotypePhenotypeDTO.MARKER_SYMBOL + ":(\""
                + StringUtils.join(markerSymbol, "\" OR \"") + "\")");
    }
    if (mpTermName != null) {
        q.addFilterQuery(
                GenotypePhenotypeDTO.MP_TERM_NAME + ":(\"" + StringUtils.join(mpTermName, "\" OR \"") + "\")");
    }

    url += q;

    return createPhenotypeResultFromSolrResponse(url, synonyms);

}

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

License:Apache License

/**
 * Get a list of gene symbols for this phenotype
 * @param phenotype_id// w w w .  ja v  a2 s .  com
 * @return
 * @throws IOException
 * @throws URISyntaxException
 * @throws SolrServerException
 */
public List<String> getGenesForMpId(String phenotype_id)
        throws IOException, URISyntaxException, SolrServerException {
    List<String> results = new ArrayList<>();
    String url = SolrUtils.getBaseURL(genotypePhenotypeCore) + "/select/?";
    SolrQuery q = new SolrQuery();

    q.setQuery("*:*");
    q.addFilterQuery("(" + GenotypePhenotypeDTO.MP_TERM_ID + ":\"" + phenotype_id + "\" OR "
            + GenotypePhenotypeDTO.TOP_LEVEL_MP_TERM_ID + ":\"" + phenotype_id + "\" OR "
            + GenotypePhenotypeDTO.INTERMEDIATE_MP_TERM_ID + ":\"" + phenotype_id + "\")");
    q.setRows(10000000);
    q.setFacet(true);
    q.setFacetMinCount(1);
    q.setFacetLimit(-1);
    //q.addFacetField(GenotypePhenotypeDTO.MARKER_ACCESSION_ID);
    q.addFacetField(GenotypePhenotypeDTO.MARKER_SYMBOL);
    // q.addFacetField(GenotypePhenotypeDTO.MP_TERM_NAME );
    q.set("wt", "json");
    q.setSort(GenotypePhenotypeDTO.P_VALUE, ORDER.asc);
    q.setFields(GenotypePhenotypeDTO.MARKER_SYMBOL);
    //               q.setFields(GenotypePhenotypeDTO.MP_TERM_NAME, GenotypePhenotypeDTO.MP_TERM_ID, GenotypePhenotypeDTO.MPATH_TERM_NAME, GenotypePhenotypeDTO.MPATH_TERM_ID, GenotypePhenotypeDTO.EXTERNAL_ID,
    //                     GenotypePhenotypeDTO.TOP_LEVEL_MP_TERM_ID, GenotypePhenotypeDTO.TOP_LEVEL_MP_TERM_NAME, GenotypePhenotypeDTO.ALLELE_SYMBOL, 
    //                     GenotypePhenotypeDTO.PHENOTYPING_CENTER, GenotypePhenotypeDTO.ALLELE_ACCESSION_ID, GenotypePhenotypeDTO.MARKER_SYMBOL,
    //                     GenotypePhenotypeDTO.MARKER_ACCESSION_ID, GenotypePhenotypeDTO.PHENOTYPING_CENTER, GenotypePhenotypeDTO.ZYGOSITY, 
    //                     GenotypePhenotypeDTO.SEX, GenotypePhenotypeDTO.LIFE_STAGE_NAME, GenotypePhenotypeDTO.RESOURCE_NAME, GenotypePhenotypeDTO.PARAMETER_STABLE_ID, GenotypePhenotypeDTO.PARAMETER_NAME,
    //                     GenotypePhenotypeDTO.PIPELINE_STABLE_ID, GenotypePhenotypeDTO.PROJECT_NAME, GenotypePhenotypeDTO.PROJECT_EXTERNAL_ID,
    //                     GenotypePhenotypeDTO.P_VALUE, GenotypePhenotypeDTO.EFFECT_SIZE, GenotypePhenotypeDTO.PROCEDURE_STABLE_ID,
    //                     GenotypePhenotypeDTO.PROCEDURE_NAME, GenotypePhenotypeDTO.PIPELINE_NAME);

    QueryResponse response = genotypePhenotypeCore.query(q);
    for (Count facet : response.getFacetField(GenotypePhenotypeDTO.MARKER_SYMBOL).getValues()) {
        //System.out.println("facet="+facet.getName());
        results.add(facet.getName());
    }
    return results;
}

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

License:Apache License

/**
 * @param mpTermName//from  ww  w. j  a va 2s .  c  o  m
 * @param resource
 * @return map <colony_id, occurences>
 */
public Map<String, Long> getAssociationsDistribution(String mpTermName, String resource) {

    String query = GenotypePhenotypeDTO.MP_TERM_NAME + ":\"" + mpTermName + "\"";
    if (resource != null) {
        query += " AND " + GenotypePhenotypeDTO.RESOURCE_NAME + ":" + resource;
    }

    SolrQuery q = new SolrQuery();
    q.setQuery(query);
    q.setFacet(true);
    q.setFacetMinCount(1);
    q.addFacetField(GenotypePhenotypeDTO.COLONY_ID);

    try {
        return (getFacets(genotypePhenotypeCore.query(q))).get(GenotypePhenotypeDTO.COLONY_ID);
    } catch (SolrServerException | IOException e) {
        e.printStackTrace();
    }

    return null;
}

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

License:Apache License

public Set<String> getFertilityAssociatedMps() {

    SolrQuery q = new SolrQuery();
    q.setQuery(GenotypePhenotypeDTO.PARAMETER_STABLE_ID + ":*_FER_*");
    q.setFacet(true);//from   w  w w .j  a  v  a 2  s.com
    q.setFacetMinCount(1);
    q.addFacetField(GenotypePhenotypeDTO.MP_TERM_NAME);

    try {
        return (getFacets(genotypePhenotypeCore.query(q))).get(GenotypePhenotypeDTO.MP_TERM_NAME).keySet();
    } catch (SolrServerException | IOException e) {
        e.printStackTrace();
    }

    return null;
}

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

License:Apache License

Map<String, Long> getDocumentCountByMgiGeneAccessionId() {

    SolrQuery query = new SolrQuery();
    query.setQuery("*:*");
    query.setRows(0);//from w w  w  . jav  a 2 s .c o m
    query.setFacet(true);
    query.addFacetField(GenotypePhenotypeDTO.MARKER_ACCESSION_ID);
    query.setFacetLimit(-1);
    query.setFacetMinCount(1);

    try {
        return getFacets(genotypePhenotypeCore.query(query)).get(GenotypePhenotypeDTO.MARKER_ACCESSION_ID);
    } catch (SolrServerException | IOException e) {
        e.printStackTrace();
    }

    return new HashMap<>();

}

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

License:Apache License

/**
 *
 * @param mpId//from   w ww .  ja va  2 s . co m
 * @param filterOnAccessions list of marker accessions to restrict the results by e.g. for the hearing page we only want results for the 67 genes for the paper
 * @return
 * @throws JSONException
 */
public JSONArray getTopLevelPhenotypeIntersection(String mpId, Set<String> filterOnAccessions)
        throws JSONException {

    String pivot = GenotypePhenotypeDTO.MARKER_ACCESSION_ID + "," + GenotypePhenotypeDTO.MARKER_SYMBOL;
    SolrQuery query = new SolrQuery();
    query.setQuery(mpId == null ? "*:*"
            : GenotypePhenotypeDTO.MP_TERM_ID + ":\"" + mpId + "\" OR "
                    + GenotypePhenotypeDTO.INTERMEDIATE_MP_TERM_ID + ":\"" + mpId + "\" OR "
                    + GenotypePhenotypeDTO.TOP_LEVEL_MP_TERM_ID + ":\"" + mpId + "\"");
    query.setRows(0);
    query.setFacet(true);
    query.addFacetField(GenotypePhenotypeDTO.MARKER_ACCESSION_ID);
    query.setFacetLimit(-1);
    query.setFacetMinCount(1);
    query.add("facet.pivot", pivot);

    try {
        QueryResponse response = genotypePhenotypeCore.query(query);
        Map<String, Long> countByGene = getFacets(response).get(GenotypePhenotypeDTO.MARKER_ACCESSION_ID);
        Map<String, List<String>> geneAccSymbol = getFacetPivotResults(response, pivot);

        Set<String> jitter = new HashSet<>();
        JSONArray array = new JSONArray();
        for (String markerAcc : countByGene.keySet()) {
            JSONObject obj = new JSONObject();
            Double y = new Double(countByGene.get(markerAcc));
            Double x = (getDocumentCountByMgiGeneAccessionId().get(markerAcc) - y);
            obj = addJitter(x, y, jitter, obj);
            obj.accumulate("markerAcc", markerAcc);
            obj.accumulate("markerSymbol", geneAccSymbol.get(markerAcc).get(0));
            if (filterOnAccessions != null && filterOnAccessions.contains(markerAcc)) {
                array.put(obj);
            } else if (filterOnAccessions == null) {
                array.put(obj);
            }
        }

        return array;

    } catch (SolrServerException | IOException e) {
        e.printStackTrace();
    }
    return null;
}

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

License:Apache License

public Map<String, Set<String>> getFacets(String anatomyId) throws SolrServerException, IOException {

    Map<String, Set<String>> res = new HashMap<>();
    SolrQuery query = new SolrQuery();
    query.setQuery(ImageDTO.PROCEDURE_NAME + ":*LacZ");

    if (anatomyId != null) {
        query.addFilterQuery("(" + ImageDTO.ANATOMY_ID + ":\"" + anatomyId + "\" OR "
                + ImageDTO.INTERMEDIATE_ANATOMY_ID + ":\"" + anatomyId + "\" OR "
                + ImageDTO.SELECTED_TOP_LEVEL_ANATOMY_ID + ":\"" + anatomyId + "\")");
    }/*from w  w  w  .  jav  a  2  s  .  c om*/
    query.addFilterQuery(ImageDTO.BIOLOGICAL_SAMPLE_GROUP + ":\"experimental\"")
            .addFilterQuery("(" + ImageDTO.PARAMETER_ASSOCIATION_VALUE + ":\"no expression\" OR "
                    + ObservationDTO.PARAMETER_ASSOCIATION_VALUE + ":\"expression\"" + ")"); // only have expressed and
    // not expressed ingnore
    // ambiguous and no tissue
    query.setFacet(true);
    query.setFacetLimit(-1);
    query.setFacetMinCount(1);
    query.addFacetField(ImageDTO.ANATOMY_TERM);
    query.addFacetField(ImageDTO.PHENOTYPING_CENTER);
    query.addFacetField(ImageDTO.PROCEDURE_NAME);
    query.addFacetField(ImageDTO.PARAMETER_ASSOCIATION_VALUE);
    QueryResponse response = impcImagesCore.query(query);

    for (FacetField facetField : response.getFacetFields()) {
        Set<String> filter = new TreeSet<>();
        for (Count facet : facetField.getValues()) {
            if (!facet.getName().equals("tissue not available") && !facet.getName().equals("ambiguous")) {
                filter.add(facet.getName());
            }
        }
        res.put(facetField.getName(), filter);

    }

    return res;
}