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

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

Introduction

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

Prototype

public SolrQuery setRows(Integer rows) 

Source Link

Usage

From source file:org.mousephenotype.cda.solr.repositories.image.ImagesSolrJ.java

License:Apache License

/**
 * Get all SOLR documents for a mammalian phenotype ontology term
 *
 * @param mpId the phenotype term to query for
 * @param start offset from zero//  ww  w .ja  v a2s.  c o  m
 * @param length how many docs to return
 */
public QueryResponse getDocsForMpTerm(String mpId, int start, int length)
        throws SolrServerException, IOException {

    String id = processQuery(mpId);
    String query = "mp_id:" + id;

    log.debug("solr query=" + query);

    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery(query);
    solrQuery.setStart(start);
    solrQuery.setRows(length);

    solrQuery.setFields(ImageDTO.FULL_RESOLUTION_FILE_PATH, "smallThumbnailFilePath", "largeThumbnailFilePath",
            "institute", "gender", "genotype", "maTerm", "annotationTermName", "genotypeString");

    return sangerImagesCore.query(solrQuery);
}

From source file:org.mousephenotype.cda.solr.repositories.image.ImagesSolrJ.java

License:Apache License

/**
 * Returns documents from Solr Index filtered by the passed in query
 * filterField e.g. annotationTerm:large ear
 * @throws SolrServerException, IOException
 *
 *
 *//*from w  w w . j av  a 2 s  . c o  m*/
public QueryResponse getFilteredDocsForQuery(String query, List<String> filterFields, String qf, String defType,
        int start, int length) throws SolrServerException, IOException {

    SolrQuery solrQuery = new SolrQuery();

    //if query field is set (such as auto_suggest), add this to the search
    if (!qf.equals("")) {
        solrQuery.set("qf", qf);
        log.debug("added qf=" + qf);
    }

    //if defType is set (such as edismax), add this to the search
    if (!defType.equals("")) {
        solrQuery.set("defType", defType);
        log.debug("set defType=" + defType);
    }

    solrQuery.setQuery(query);
    solrQuery.setStart(start);
    solrQuery.setRows(length);

    for (String fieldNValue : filterFields) {
        String[] colonStrings = fieldNValue.split(":");
        String filterField = colonStrings[0];
        String filterParam = fieldNValue.substring(fieldNValue.indexOf(":") + 1, fieldNValue.length());

        filterParam = processValueForSolr(filterParam);
        String fq = filterField + ":" + filterParam;

        log.debug("adding filter fieldNValue=" + fq);

        solrQuery.addFilterQuery(fq);
    }

    log.debug("Query is: " + solrQuery.toString());

    return sangerImagesCore.query(solrQuery);
}

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

License:Apache License

/**
 *
 * @param geneIds the input set of gene ids
 * @param statusField the status field/*from w ww .jav a 2s. c o m*/
 * @return Number of genes (from the provided list) in each status of interest.
 */
public HashMap<String, Long> getStatusCount(Set<String> geneIds, String statusField) {

    HashMap<String, Long> res = new HashMap<>();
    SolrQuery solrQuery = new SolrQuery();
    QueryResponse solrResponse;

    if (geneIds != null) {
        String geneQuery = AlleleDTO.MGI_ACCESSION_ID + ":("
                + StringUtils.join(geneIds, " OR ").replace(":", "\\:") + ")";
        solrQuery.setQuery(geneQuery);
    } else {
        solrQuery.setQuery("*:*");
    }
    solrQuery.setRows(1);
    solrQuery.setFacet(true);
    solrQuery.setFacetLimit(-1);
    try {
        solrQuery.addFacetField(statusField);
        solrResponse = alleleCore.query(solrQuery);
        for (Count c : solrResponse.getFacetField(statusField).getValues()) {
            res.put(c.getName(), c.getCount());
        }
    } catch (SolrServerException | IOException e) {
        e.printStackTrace();
    }

    return res;
}

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

License:Apache License

public TreeMap<String, Long> getStatusCountByPhenotypingCenter(String center, String statusField) {

    TreeMap<String, Long> res = new TreeMap<>(new PhenotypingStatusComparator());
    SolrQuery solrQuery = new SolrQuery();
    QueryResponse solrResponse;//from  www .ja v a2  s  . com

    if (center != null) {
        String geneQuery = AlleleDTO.LATEST_PHENOTYPING_CENTRE + ":\"" + center + "\"";
        solrQuery.setQuery(geneQuery);
    } else {
        solrQuery.setQuery("*:*");
    }

    solrQuery.setRows(1);
    solrQuery.setFacet(true);
    solrQuery.setFacetLimit(-1);
    try {
        solrQuery.addFacetField(statusField);
        solrResponse = alleleCore.query(solrQuery);
        for (Count c : solrResponse.getFacetField(statusField).getValues()) {
            // We don't want to show everything
            if (!(c.getName().equalsIgnoreCase("Cre Excision Started") || c.getName().equals(""))) {
                res.put(c.getName(), c.getCount());
            }
        }
    } catch (SolrServerException | IOException e) {
        e.printStackTrace();
    }
    return res;
}

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

License:Apache License

public TreeMap<String, Long> getStatusCountByProductionCenter(String center, String statusField) {

    TreeMap<String, Long> res = new TreeMap<>(new ProductionStatusComparator());
    SolrQuery solrQuery = new SolrQuery();
    QueryResponse solrResponse;/*from ww  w. ja  v a 2s. c  o m*/

    if (center != null) {
        String geneQuery = AlleleDTO.LATEST_PRODUCTION_CENTRE + ":\"" + center + "\"";
        solrQuery.setQuery(geneQuery);
    } else {
        solrQuery.setQuery("*:*");
    }

    solrQuery.setRows(1);
    solrQuery.setFacet(true);
    solrQuery.setFacetLimit(-1);
    try {
        solrQuery.addFacetField(statusField);
        solrResponse = alleleCore.query(solrQuery);
        for (Count c : solrResponse.getFacetField(statusField).getValues()) {
            // We don't want to show everything
            if (!c.getName().equals("")) {
                res.put(c.getName(), c.getCount());
            }
        }
    } catch (SolrServerException | IOException e) {
        e.printStackTrace();
    }
    return res;
}

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

License:Apache License

public QueryResponse getExpressionImagesForGeneByAnatomy(String mgiAccession, String anatomy,
        String experimentOrControl, int numberOfImagesToRetrieve, SexType sex, String metadataGroup,
        String strain) throws SolrServerException, IOException {

    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery(ImageDTO.GENE_ACCESSION_ID + ":\"" + mgiAccession + "\"");
    solrQuery.addFilterQuery(ImageDTO.BIOLOGICAL_SAMPLE_GROUP + ":" + experimentOrControl);
    if (StringUtils.isNotEmpty(metadataGroup)) {
        solrQuery.addFilterQuery(ImageDTO.METADATA_GROUP + ":" + metadataGroup);
    }//from  ww w  . j a va2 s  .  com
    if (StringUtils.isNotEmpty(strain)) {
        solrQuery.addFilterQuery(ImageDTO.STRAIN_NAME + ":" + strain);
    }
    if (sex != null) {
        solrQuery.addFilterQuery(ImageDTO.SEX + ":" + sex.name());
    }
    if (StringUtils.isNotEmpty(anatomy)) {
        solrQuery.addFilterQuery(ImageDTO.PARAMETER_ASSOCIATION_NAME + ":\"" + anatomy + "\"");
    }
    // solrQuery.addFilterQuery(ObservationDTO.PROCEDURE_NAME + ":\"" +
    // procedure_name + "\"");
    solrQuery.setRows(numberOfImagesToRetrieve);
    QueryResponse response = impcImagesCore.query(solrQuery);
    return response;
}

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

License:Apache License

/**
 *
 * @param mgiAccession/*from w w w  .ja v  a 2  s  .  c  om*/
 *            if mgi accesion null assume a request for control data
 * @param fields
 * @return
 * @throws SolrServerException, IOException
 */
public QueryResponse getExpressionTableDataImages(String mgiAccession, boolean embryo, String... fields)
        throws SolrServerException, IOException {
    // e.g.
    // http://ves-ebi-d0.ebi.ac.uk:8090/mi/impc/dev/solr/impc_images/select?q=gene_accession_id:%22MGI:106209%22&facet=true&facet.field=ma_term&facet.mincount=1&fq=(parameter_name:%22LacZ%20Images%20Section%22%20OR%20parameter_name:%22LacZ%20Images%20Wholemount%22)
    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.PARAMETER_NAME + ":\"LacZ images Section\" OR "
                + ImageDTO.PARAMETER_NAME + ":\"LacZ images wholemount\"");
    } else {
        solrQuery.addFilterQuery(ImageDTO.PARAMETER_NAME + ":\"LacZ Images Section\" OR "
                + ImageDTO.PARAMETER_NAME + ":\"LacZ Images Wholemount\"");
    }

    solrQuery.setFields(fields);
    solrQuery.setRows(100000);
    solrQuery.setSort(ObservationDTO.ID, SolrQuery.ORDER.asc);

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

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

License:Apache License

/**
 *
 * @param mgiAccession//from   w  w  w . j a v a 2 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 getAdultLaczImageFacetsForGene(String mgiAccession, String parameterStableId,
        String... fields) throws SolrServerException, IOException {

    //solrQuery.addFilterQuery(ImageDTO.PARAMETER_NAME + ":\"LacZ Images Section\" OR " + ImageDTO.PARAMETER_NAME
    //      + ":\"LacZ Images Wholemount\"");// reduce the number to image
    // e.g./*from w w w . j ava  2  s.  c om*/
    // 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 + "\"");
    if (!StringUtils.isEmpty(parameterStableId)) {
        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);
    QueryResponse response = impcImagesCore.query(solrQuery);
    return response;
}

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

License:Apache License

public List<Count> getLaczCategoricalParametersForGene(String mgiAccession, String... fields)
        throws SolrServerException, IOException {
    // e.g./* w  ww  .  ja  v a2  s. c  o m*/
    // 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.PROCEDURE_NAME + ":\"Adult LacZ\"");
    solrQuery.addFilterQuery("-" + ImageDTO.PARAMETER_NAME + ":\"LacZ Images Section\"");
    solrQuery.addFilterQuery("-" + ImageDTO.PARAMETER_NAME + ":\"LacZ Images Wholemount\"");
    solrQuery.addFilterQuery(ObservationDTO.CATEGORY + ":\"expression\"");
    // only look for expresssion at the moment as that is all the anatamogram can  display
    solrQuery.setFacetMinCount(1);
    solrQuery.setFacet(true);
    solrQuery.setFields(fields);
    solrQuery.addFacetField(ImageDTO.PARAMETER_STABLE_ID);
    solrQuery.setRows(0);
    QueryResponse response = experimentCore.query(solrQuery);
    List<FacetField> categoryParameterFields = response.getFacetFields();

    return categoryParameterFields.get(0).getValues();
}