List of usage examples for org.apache.solr.client.solrj SolrQuery setFacetMinCount
public SolrQuery setFacetMinCount(int cnt)
From source file:uk.ac.ebi.phenotype.service.StatisticalResultService.java
License:Apache License
public Map<String, ArrayList<String>> getDistributionOfLinesByMPTopLevel(ArrayList<String> resourceName, Float pValueThreshold) throws SolrServerException, InterruptedException, ExecutionException { Map<String, ArrayList<String>> res = new ConcurrentHashMap<>(); //<parameter, <genes>> Long time = System.currentTimeMillis(); String pivotFacet = StatisticalResultDTO.TOP_LEVEL_MP_TERM_NAME + "," + StatisticalResultDTO.COLONY_ID; SolrQuery q = new SolrQuery(); if (resourceName != null) { q.setQuery(StatisticalResultDTO.RESOURCE_NAME + ":" + StringUtils.join(resourceName, " OR " + StatisticalResultDTO.RESOURCE_NAME + ":")); } else {//from www. ja v a 2s .c om q.setQuery("*:*"); } if (pValueThreshold != null) { q.setFilterQueries(StatisticalResultDTO.P_VALUE + ":[0 TO " + pValueThreshold + "]"); } q.set("facet.pivot", pivotFacet); q.setFacet(true); q.setFacetMinCount(1); q.setRows(1); q.set("facet.limit", -1); System.out.println("Solr url for getDistributionOfLinesByMPTopLevel " + solr.getBaseURL() + "/select?" + q); QueryResponse response = solr.query(q); for (PivotField pivot : response.getFacetPivot().get(pivotFacet)) { ArrayList<String> colonies = new ArrayList<>(); for (PivotField colony : pivot.getPivot()) { colonies.add(colony.getValue().toString()); } res.put(pivot.getValue().toString(), new ArrayList<String>(colonies)); } System.out.println("Done in " + (System.currentTimeMillis() - time)); return res; }
From source file:uk.ac.ebi.phenotype.service.StatisticalResultService.java
License:Apache License
/** * @return Map <String, Long> : <top_level_mp_name, number_of_annotations> * @author tudose/*from w w w . j a v a2 s.c om*/ */ public TreeMap<String, Long> getDistributionOfAnnotationsByMPTopLevel(ArrayList<String> resourceName, Float pValueThreshold) { SolrQuery query = new SolrQuery(); if (resourceName != null) { query.setQuery(StatisticalResultDTO.RESOURCE_NAME + ":" + StringUtils.join(resourceName, " OR " + StatisticalResultDTO.RESOURCE_NAME + ":")); } else { query.setQuery("*:*"); } if (pValueThreshold != null) { query.setFilterQueries(StatisticalResultDTO.P_VALUE + ":[0 TO " + pValueThreshold + "]"); } query.setFacet(true); query.setFacetLimit(-1); query.setFacetMinCount(1); query.setRows(0); query.addFacetField(StatisticalResultDTO.TOP_LEVEL_MP_TERM_NAME); try { QueryResponse response = solr.query(query); TreeMap<String, Long> res = new TreeMap<>(); res.putAll(getFacets(response).get(StatisticalResultDTO.TOP_LEVEL_MP_TERM_NAME)); return res; } catch (SolrServerException e) { e.printStackTrace(); } return null; }
From source file:uk.ac.ebi.phenotype.service.StatisticalResultService.java
License:Apache License
public Map<String, Set<String>> getAccessionProceduresMap(String resourceName) { SolrQuery query = new SolrQuery(); Map<String, Set<String>> res = new HashMap<>(); NamedList<List<PivotField>> response; if (resourceName == null) { query.setQuery("*:*"); } else {/*from ww w. ja v a 2s .c o m*/ query.setQuery(StatisticalResultDTO.RESOURCE_NAME + ":" + resourceName); } query.setFacet(true); query.addFacetPivotField( StatisticalResultDTO.MARKER_ACCESSION_ID + "," + StatisticalResultDTO.PROCEDURE_STABLE_ID); query.setFacetLimit(-1); query.setFacetMinCount(1); query.setRows(0); try { response = solr.query(query).getFacetPivot(); for (PivotField genePivot : response.get( StatisticalResultDTO.MARKER_ACCESSION_ID + "," + StatisticalResultDTO.PROCEDURE_STABLE_ID)) { String geneName = genePivot.getValue().toString(); Set<String> procedures = new HashSet<>(); for (PivotField f : genePivot.getPivot()) { procedures.add(f.getValue().toString()); } res.put(geneName, procedures); } } catch (SolrServerException e) { e.printStackTrace(); } return res; }
From source file:uk.ac.ebi.phenotype.service.StatisticalResultService.java
License:Apache License
public Set<String> getAccessionsByResourceName(String resourceName) { Set<String> res = new HashSet<>(); SolrQuery query = new SolrQuery().setQuery(StatisticalResultDTO.RESOURCE_NAME + ":" + resourceName); query.setFacet(true);/* ww w .j av a 2s.c o m*/ query.addFacetField(StatisticalResultDTO.MARKER_ACCESSION_ID); query.setFacetLimit(10000000); query.setFacetMinCount(1); query.setRows(0); QueryResponse response; try { response = solr.query(query); for (Count id : response.getFacetField(StatisticalResultDTO.MARKER_ACCESSION_ID).getValues()) { res.add(id.getName()); } } catch (SolrServerException e) { e.printStackTrace(); } return res; }
From source file:uk.ac.ebi.phis.service.ImageService.java
License:Apache License
public String getImages(String term, String phenotype, String mutantGene, String anatomy, String expressedGene, String sex, String taxon, String imageType, String sampleType, String stage, String visualisationMethod, String samplePreparation, String imagingMethod, Integer rows, Integer start, String genericGene, String chromosome, String strand, Long position, Long startPosition, Long endPosition, String hostName) throws SolrServerException, PhisQueryException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery("*:*"); // boosted queries String bq = ""; String qf = ""; if (term != null) { solrQuery.setQuery("(" + ImageDTO.GENERIC_SEARCH + ":" + handleSpecialCharacters(term) + " OR " + ImageDTO.GENERIC_SEARCH_ANCESTORS + ":" + handleSpecialCharacters(term) + ")"); if (term.contains(" ")) { String[] splittedQuery = term.split(" "); String query = ImageDTO.GENERIC_SEARCH + ":" + org.apache.commons.lang3.StringUtils .join(splittedQuery, "^10 " + ImageDTO.GENERIC_SEARCH + ":"); bq += ImageDTO.GENERIC_SEARCH + ":\"" + term + "\"^100 " + handleSpecialCharacters(query) + " " + ImageDTO.GENERIC_SEARCH_ANCESTORS + ":\"" + term + "\"^1 " + ImageDTO.GENERIC_SEARCH_ANCESTORS + ":" + org.apache.commons.lang3.StringUtils .join(splittedQuery, "^0.1 " + ImageDTO.GENERIC_SEARCH_ANCESTORS + ":"); qf += ImageDTO.GENERIC_SEARCH; } else {/* w w w.j a v a 2 s .co m*/ solrQuery.addFilterQuery("(" + ImageDTO.GENERIC_SEARCH + ":" + handleSpecialCharacters(term) + " OR " + ImageDTO.GENERIC_SEARCH_ANCESTORS + ":" + handleSpecialCharacters(term) + ")"); } } if (phenotype != null) { phenotype = handleSpecialCharacters(phenotype); bq += ImageDTO.PHENOTYPE_ID_BAG + ":\"" + phenotype + "\"^100 " + ImageDTO.PHENOTYPE_FREETEXT_BAG + ":\"" + phenotype + "\"^70 " + ImageDTO.PHENOTYPE_LABEL_BAG + ":\"" + phenotype + "\"^100 " + ImageDTO.PHENOTYPE_ANCESTORS + ":\"" + phenotype + "\"^0.001 " + ImageDTO.PHENOTYPE_SYNONYMS_BAG + ":\"" + phenotype + "\"^0.1 "; solrQuery.addFilterQuery(ImageDTO.PHENOTYPE_ID_BAG + ":\"" + phenotype + "\" OR " + ImageDTO.PHENOTYPE_FREETEXT_BAG + ":\"" + phenotype + "\" OR " + ImageDTO.PHENOTYPE_LABEL_BAG + ":\"" + phenotype + "\" OR " + ImageDTO.PHENOTYPE_ANCESTORS + ":\"" + phenotype + "\""); } if (visualisationMethod != null) { visualisationMethod = handleSpecialCharacters(visualisationMethod); bq += ImageDTO.VISUALISATION_METHOD_ID + ":\"" + visualisationMethod + "\"^100 " + ImageDTO.VISUALISATION_METHOD_LABEL + ":\"" + visualisationMethod + "\"^100 " + ImageDTO.VISUALISATION_METHOD_ANCESTORS + ":\"" + visualisationMethod + "\"^0.001 "; solrQuery.addFilterQuery(ImageDTO.VISUALISATION_METHOD_ID + ":\"" + visualisationMethod + "\" OR " + ImageDTO.VISUALISATION_METHOD_LABEL + ":\"" + visualisationMethod + "\" OR " + ImageDTO.VISUALISATION_METHOD_ANCESTORS + ":\"" + visualisationMethod + "\""); } if (samplePreparation != null) { samplePreparation = handleSpecialCharacters(samplePreparation); bq += ImageDTO.SAMPLE_PREPARATION_ID + ":\"" + samplePreparation + "\"^100 " + ImageDTO.SAMPLE_PREPARATION_LABEL + ":\"" + samplePreparation + "\"^100 " + ImageDTO.SAMPLE_PREPARATION_ANCESTORS + ":\"" + samplePreparation + "\"^0.001 "; solrQuery.addFilterQuery(ImageDTO.SAMPLE_PREPARATION_ID + ":\"" + samplePreparation + "\" OR " + ImageDTO.SAMPLE_PREPARATION_LABEL + ":\"" + samplePreparation + "\" OR " + ImageDTO.SAMPLE_PREPARATION_ANCESTORS + ":\"" + samplePreparation + "\""); } if (imagingMethod != null) { imagingMethod = handleSpecialCharacters(imagingMethod); bq = ImageDTO.IMAGING_METHOD_LABEL_ANALYSED + ":\"" + imagingMethod + "\"^100 " + ImageDTO.IMAGING_METHOD_ID + ":\"" + imagingMethod + "\"^100 " + ImageDTO.IMAGING_METHOD_ANCESTORS + ":\"" + imagingMethod + "\"^0.001 "; solrQuery.addFilterQuery(ImageDTO.IMAGING_METHOD_LABEL_ANALYSED + ":\"" + imagingMethod + "\" OR " + ImageDTO.IMAGING_METHOD_ID + ":\"" + imagingMethod + "\" OR " + ImageDTO.IMAGING_METHOD_ANCESTORS + ":\"" + imagingMethod + "\""); } if (anatomy != null) { anatomy = handleSpecialCharacters(anatomy); bq += ImageDTO.GENERIC_ANATOMY + ":\"" + anatomy + "\"^100 " + ImageDTO.GENERIC_ANATOMY_ANCESTORS + ":\"" + anatomy + "\"^0.001 "; solrQuery.addFilterQuery(ImageDTO.GENERIC_ANATOMY + ":\"" + anatomy + "\" OR " + ImageDTO.GENERIC_ANATOMY_ANCESTORS + ":\"" + anatomy + "\""); } if (!bq.equals("")) { solrQuery.set("defType", "edismax"); solrQuery.set("bq", bq); } if (!qf.equals("")) { solrQuery.set("qf", qf); } // Non-boosted queries if (mutantGene != null) { mutantGene = handleSpecialCharacters(mutantGene); solrQuery.addFilterQuery(ImageDTO.GENE_ID + ":\"" + mutantGene + "\" OR " + ImageDTO.GENE_SYMBOL + ":\"" + mutantGene + "\""); } if (hostName != null) { solrQuery.addFilterQuery(ImageDTO.HOST_NAME + ":\"" + hostName + "\""); } if (genericGene != null) { genericGene = handleSpecialCharacters(genericGene); solrQuery.addFilterQuery(ImageDTO.GENE_ID + ":\"" + genericGene + "\" OR " + ImageDTO.GENE_SYMBOL + ":\"" + genericGene + "\" OR " + ImageDTO.EXPRESSED_GF_ID_BAG + ":\"" + genericGene + "\" OR " + ImageDTO.EXPRESSED_GF_SYMBOL_BAG + ":\"" + genericGene + "\" OR " + ImageDTO.MUTANT_GENE_ID_BAG + ":\"" + genericGene + "\" OR " + ImageDTO.MUTANT_GENE_SYMBOL_BAG + ":\"" + genericGene + "\" OR " + ImageDTO.MUTANT_GENE_SYNONYMS_BAG + ":\"" + genericGene + "\""); } if (expressedGene != null) { expressedGene = handleSpecialCharacters(expressedGene); solrQuery.addFilterQuery(ImageDTO.EXPRESSED_GF_ID_BAG + ":\"" + expressedGene + "\" OR " + ImageDTO.EXPRESSED_GF_SYMBOL_BAG + ":\"" + expressedGene + "\""); } if (taxon != null) { taxon = handleSpecialCharacters(taxon); solrQuery.addFilterQuery( ImageDTO.TAXON + ":\"" + taxon + "\" OR " + ImageDTO.NCBI_TAXON_ID + ":\"" + taxon + "\""); } if (imageType != null) { imageType = handleSpecialCharacters(imageType); solrQuery.addFilterQuery(ImageDTO.IMAGE_TYPE + ":\"" + imageType + "\""); } if (sampleType != null) { sampleType = handleSpecialCharacters(sampleType); solrQuery.addFilterQuery(ImageDTO.SAMPLE_TYPE + ":\"" + sampleType + "\""); } if (stage != null) { stage = handleSpecialCharacters(stage); solrQuery.addFilterQuery(ImageDTO.STAGE + ":\"" + stage + "\" OR " + ImageDTO.STAGE_ID + ":\"" + stage + "\" OR " + ImageDTO.STAGE_ANCESTORS + ":\"" + stage + "\" OR " + ImageDTO.STAGE_FACET + ":\"" + stage + "\""); } if (sex != null) { sex = handleSpecialCharacters(sex); solrQuery.addFilterQuery(ImageDTO.SEX + ":\"" + sex + "\""); } if (chromosome != null) { solrQuery.addFilterQuery(ImageDTO.CHROMOSOME + ":" + chromosome); } if (position != null) { solrQuery.addFilterQuery("(" + ImageDTO.END_POS + ":[* TO " + position + "] AND " + ImageDTO.START_POS + ":[" + position + " TO *])"); } if (strand != null) { solrQuery.addFilterQuery(ImageDTO.STRAND + ":\"" + strand + "\""); } if (startPosition != null && endPosition != null) { solrQuery.addFilterQuery(ImageDTO.START_POS + ":[" + startPosition + " TO " + endPosition + "] OR " + ImageDTO.END_POS + ":[" + startPosition + " TO " + endPosition + "]"); ; } else if (startPosition != null && endPosition == null || startPosition == null && endPosition != null) { throw new PhisQueryException(PhisQueryException.START_END_POS); } if (rows != null) { solrQuery.setRows(rows); } else solrQuery.setRows(100); if (start != null) { solrQuery.set("start", start); } solrQuery.set("wt", "json"); solrQuery.setFacet(true); solrQuery.addFacetField(ImageDTO.STAGE_FACET); solrQuery.addFacetField(ImageDTO.IMAGING_METHOD_LABEL); solrQuery.addFacetField(ImageDTO.TAXON); solrQuery.addFacetField(ImageDTO.SAMPLE_TYPE); solrQuery.addFacetField(ImageDTO.IMAGE_GENERATED_BY); solrQuery.addFacetField(ImageDTO.HOST_NAME); solrQuery.addFacetField(ImageDTO.IMAGE_TYPE); solrQuery.setFacetMinCount(0); solrQuery.set("facet.pivot.mincount", 0); // add pivot facets to get the number of image types per solrQuery.set("facet.pivot", ImageDTO.SAMPLE_TYPE + "," + ImageDTO.IMAGE_TYPE); System.out.println("\nSolr URL : " + solr.getBaseURL() + "/select?" + solrQuery); log.info("Solr URL in getImages : " + solr.getBaseURL() + "/select?" + solrQuery); try { return JSONRestUtil.getResults(getQueryUrl(solrQuery)).toString(); } catch (IOException e) { e.printStackTrace(); } catch (URISyntaxException e) { e.printStackTrace(); } return "Couldn't get anything back from solr."; }