List of usage examples for org.apache.solr.client.solrj SolrQuery setFacetMinCount
public SolrQuery setFacetMinCount(int cnt)
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; }