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: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.";
}