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

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

Introduction

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

Prototype

public SolrQuery setSort(String field, ORDER order) 

Source Link

Document

Replaces the current sort information with a single sort clause

Usage

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

License:Apache License

/**
 *
 * @param mgiAccession/*  w  w  w  .  j a v  a2  s  .  c o m*/
 *            if mgi accesion null assume a request for control data
 * @param fields
 * @return
 * @throws SolrServerException, IOException
 */
private QueryResponse getCategoricalAdultLacZData(String mgiAccession, boolean embryo, String... fields)
        throws SolrServerException, IOException {
    // e.g.
    // http://ves-ebi-d0.ebi.ac.uk:8090/mi/impc/dev/solr/experiment/select?q=gene_accession_id:%22MGI:1351668%22&facet=true&facet.field=parameter_name&facet.mincount=1&fq=(procedure_name:%22Adult%20LacZ%22)&rows=10000
    SolrQuery solrQuery = new SolrQuery();
    if (mgiAccession != null) {
        solrQuery.setQuery(ImageDTO.GENE_ACCESSION_ID + ":\"" + mgiAccession + "\"");
    } else {
        // http://ves-ebi-d0.ebi.ac.uk:8090/mi/impc/dev/solr/impc_images/select?q=biological_sample_group:control&facet=true&facet.field=ma_term&facet.mincount=1&fq=(parameter_name:%22LacZ%20Images%20Section%22%20OR%20parameter_name:%22LacZ%20Images%20Wholemount%22)&rows=100000
        solrQuery.setQuery(ObservationDTO.BIOLOGICAL_SAMPLE_GROUP + ":\"" + "control" + "\"");
    }
    if (embryo) {
        solrQuery.addFilterQuery(ImageDTO.PROCEDURE_NAME + ":\"Embryo LacZ\"");
        solrQuery.addFilterQuery("-" + ImageDTO.PARAMETER_NAME + ":\"LacZ images section\"");
        solrQuery.addFilterQuery("-" + ImageDTO.PARAMETER_NAME + ":\"LacZ images wholemount\"");
        solrQuery.addFilterQuery(ObservationDTO.OBSERVATION_TYPE + ":\"categorical\"");
    } else {
        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.OBSERVATION_TYPE + ":\"categorical\"");
    }

    solrQuery.addSort(ImageDTO.ID, SolrQuery.ORDER.asc);
    solrQuery.setFields(fields);
    solrQuery.setRows(Integer.MAX_VALUE);
    solrQuery.setSort(ObservationDTO.ID, SolrQuery.ORDER.asc);

    QueryResponse response = experimentCore.query(solrQuery);
    return response;
}

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. java  2 s  .  com
    // 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;
}

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

License:Apache License

public SolrDocumentList getPhenotypesForTopLevelTerm(String gene, String mpID, ZygosityType zygosity)
        throws SolrServerException, IOException {

    String query;/*  w  w w. j a  v  a2  s . co m*/
    if (gene.equalsIgnoreCase("*")) {
        query = GenotypePhenotypeDTO.MARKER_ACCESSION_ID + ":" + gene + " AND ";
    } else {
        query = GenotypePhenotypeDTO.MARKER_ACCESSION_ID + ":\"" + gene + "\" AND ";

    }

    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery(query + "(" + GenotypePhenotypeDTO.TOP_LEVEL_MP_TERM_ID + ":\"" + mpID + "\" OR "
            + GenotypePhenotypeDTO.MP_TERM_ID + ":\"" + mpID + "\")");
    solrQuery.setRows(1000000);
    solrQuery.setSort(StatisticalResultDTO.P_VALUE, ORDER.asc);
    solrQuery.setFields(GenotypePhenotypeDTO.P_VALUE, GenotypePhenotypeDTO.SEX, GenotypePhenotypeDTO.ZYGOSITY,
            GenotypePhenotypeDTO.MARKER_ACCESSION_ID, GenotypePhenotypeDTO.MARKER_SYMBOL,
            GenotypePhenotypeDTO.MP_TERM_ID, GenotypePhenotypeDTO.MP_TERM_NAME,
            GenotypePhenotypeDTO.TOP_LEVEL_MP_TERM_ID, GenotypePhenotypeDTO.TOP_LEVEL_MP_TERM_NAME);

    if (zygosity != null) {
        solrQuery.setFilterQueries(GenotypePhenotypeDTO.ZYGOSITY + ":" + zygosity.getName());
    }

    SolrDocumentList result = genotypePhenotypeCore.query(solrQuery).getResults();

    return result;
}

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);/*  ww  w . j a  va 2  s . c  om*/
    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);/*from  w w  w .  j ava  2  s.c om*/
    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//from   w  ww  . j a va2 s  .c  o  m
 * @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.ImageService.java

License:Apache License

/**
*
* @param metadataGroup/* ww w . j a  va  2 s .  com*/
* @param center
* @param strain
* @param procedure_name
* @param parameter
* @param date
* @param numberOfImagesToRetrieve
* @param sex
* @return
* @throws SolrServerException, IOException
*/
public QueryResponse getControlImagesForProcedure(String metadataGroup, String center, String strain,
        String procedure_name, String parameter, Date date, int numberOfImagesToRetrieve, SexType sex)
        throws SolrServerException, IOException {

    SolrQuery solrQuery = new SolrQuery();

    solrQuery.setQuery("*:*");

    solrQuery.addFilterQuery(ObservationDTO.BIOLOGICAL_SAMPLE_GROUP + ":control",
            ObservationDTO.PHENOTYPING_CENTER + ":\"" + center + "\"",
            ObservationDTO.STRAIN_NAME + ":" + strain, ObservationDTO.PARAMETER_STABLE_ID + ":" + parameter,
            ObservationDTO.PROCEDURE_NAME + ":\"" + procedure_name + "\"");

    solrQuery.setSort(ObservationDTO.DATE_OF_EXPERIMENT, SolrQuery.ORDER.asc);
    solrQuery.setRows(numberOfImagesToRetrieve);

    if (StringUtils.isNotEmpty(metadataGroup)) {
        solrQuery.addFilterQuery(ObservationDTO.METADATA_GROUP + ":" + metadataGroup);
    }
    if (sex != null) {
        solrQuery.addFilterQuery(ObservationDTO.SEX + ":" + sex.name());
    }

    QueryResponse response = impcImagesCore.query(solrQuery);

    return response;
}

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

License:Apache License

public List<ObservationDTO> getObservationsByParameterStableId(String parameterStableId)
        throws SolrServerException, IOException {

    SolrQuery query = new SolrQuery();
    query.setQuery(String.format("%s:\"%s\"", ObservationDTO.PARAMETER_STABLE_ID, parameterStableId));
    query.setRows(Integer.MAX_VALUE);
    query.setSort(ObservationDTO.ID, SolrQuery.ORDER.asc);
    logger.info("getObservationsByParameterStableId Url: " + SolrUtils.getBaseURL(experimentCore) + "/select?"
            + query);//w  w  w .j a va2s.  c o m

    return experimentCore.query(query).getBeans(ObservationDTO.class);
}

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

License:Apache License

public Set<String> getViabilityForGene(String acc) throws SolrServerException, IOException {

    SolrQuery query = new SolrQuery();
    query.setQuery(ObservationDTO.PARAMETER_STABLE_ID + ":IMPC_VIA_001_001");
    query.setFilterQueries(ObservationDTO.GENE_ACCESSION_ID + ":\"" + acc + "\"");
    query.addField(ObservationDTO.GENE_SYMBOL);
    query.addField(ObservationDTO.GENE_ACCESSION_ID);
    query.addField(ObservationDTO.CATEGORY);
    query.setSort(ObservationDTO.ID, SolrQuery.ORDER.asc);
    query.setRows(100000);//  w  w w .ja  v  a 2  s .c  o  m

    logger.info("getViabilityForGene Url" + SolrUtils.getBaseURL(experimentCore) + "/select?" + query);

    HashSet<String> viabilityCategories = new HashSet<>();

    for (SolrDocument doc : experimentCore.query(query).getResults()) {
        viabilityCategories.add(doc.getFieldValue(ObservationDTO.CATEGORY).toString());
    }

    return viabilityCategories;
}

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

License:Apache License

/**
 * Returns a <code>QueryResponse</code> of data found using the given resources, parameter stable ids, and category
 * comprising geneSymbol, geneAccessionId, colonyId, and category.
 *
 * @param resources//from   w w w  .j  a  va  2  s  .  com
 * @param parameterStableIds A list of parameter stable ids that is "or'd" together to produce the result (e.g. IMPC_VIA_001_001)
 * @param categories         A list of categories that is "or'd" together to produce the result (e.g. Viable, Lethal, Male, Fertile)
 * @return a <code>QueryResponse</code> of data found using the given resources, parameter stable ids, and category,
 * comprising geneSymbol, geneAccessionId, colonyId, and category.
 * @throws SolrServerException, IOException
 */
public QueryResponse getData(List<String> resources, List<String> parameterStableIds, List<String> categories)
        throws SolrServerException, IOException {
    SolrQuery query = new SolrQuery();
    if ((resources != null) && (!resources.isEmpty())) {
        query.setFilterQueries(ObservationDTO.DATASOURCE_NAME + ":"
                + StringUtils.join(resources, " OR " + ObservationDTO.DATASOURCE_NAME + ":"));
    }
    if ((categories != null) && (!categories.isEmpty())) {
        query.setFilterQueries(ObservationDTO.CATEGORY + ":"
                + StringUtils.join(categories, " OR " + ObservationDTO.CATEGORY + ":"));
    }
    if ((parameterStableIds != null) && (!parameterStableIds.isEmpty())) {
        query.setQuery(ObservationDTO.PARAMETER_STABLE_ID + ":"
                + StringUtils.join(parameterStableIds, " OR " + ObservationDTO.PARAMETER_STABLE_ID + ":"));
    }

    query.addField(ObservationDTO.GENE_SYMBOL);
    query.addField(ObservationDTO.GENE_ACCESSION_ID);
    query.addField(ObservationDTO.ALLELE_SYMBOL);
    query.addField(ObservationDTO.ALLELE_ACCESSION_ID);
    query.addField(ObservationDTO.PHENOTYPING_CENTER);
    query.addField(ObservationDTO.COLONY_ID);
    query.addField(ObservationDTO.CATEGORY);
    query.addField(ObservationDTO.SEX);
    query.addField(ObservationDTO.ZYGOSITY);
    query.setSort(ObservationDTO.ID, SolrQuery.ORDER.asc);
    query.setRows(1000000);

    logger.info("getData Url: " + SolrUtils.getBaseURL(experimentCore) + "/select?" + query);

    return experimentCore.query(query);
}