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

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

Introduction

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

Prototype

public SolrQuery setFields(String... fields) 

Source Link

Usage

From source file:uk.ac.ebi.phenotype.service.GeneService.java

License:Apache License

/**
 * Return all gene MGI IDs from the gene core.
 * //from w ww.j  av a2 s .  com
 * @return all genes from the gene core.
 * @throws SolrServerException
 */
public Set<String> getAllGenes() throws SolrServerException {

    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery(GeneDTO.MGI_ACCESSION_ID + ":*");
    solrQuery.setRows(1000000);
    solrQuery.setFields(GeneDTO.MGI_ACCESSION_ID);
    QueryResponse rsp = null;
    rsp = solr.query(solrQuery);
    SolrDocumentList res = rsp.getResults();
    HashSet<String> allGenes = new HashSet<String>();
    for (SolrDocument doc : res) {
        allGenes.add((String) doc.getFieldValue(GeneDTO.MGI_ACCESSION_ID));
    }
    return allGenes;
}

From source file:uk.ac.ebi.phenotype.service.GeneService.java

License:Apache License

/**
 * Return all genes from the gene core whose MGI_ACCESSION_ID does not start
 * with 'MGI'./*from  w  w w .ja va2 s.c o  m*/
 * 
 * @return all genes from the gene core whose MGI_ACCESSION_ID does not
 *         start with 'MGI'.
 * @throws SolrServerException
 */
public Set<String> getAllNonConformingGenes() throws SolrServerException {

    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery("-" + GeneDTO.MGI_ACCESSION_ID + ":MGI*");
    solrQuery.setRows(1000000);
    solrQuery.setFields(GeneDTO.MGI_ACCESSION_ID);
    QueryResponse rsp = null;
    rsp = solr.query(solrQuery);
    SolrDocumentList res = rsp.getResults();
    HashSet<String> allGenes = new HashSet<String>();
    for (SolrDocument doc : res) {
        allGenes.add((String) doc.getFieldValue(GeneDTO.MGI_ACCESSION_ID));
    }
    return allGenes;
}

From source file:uk.ac.ebi.phenotype.service.MpService.java

License:Apache License

/**
 * Return all phenotypes from the mp core.
 *
 * @return all genes from the gene core.
 * @throws SolrServerException//w  w w.j  a v  a 2s.  co  m
 */
public Set<String> getAllPhenotypes() throws SolrServerException {

    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery(MpDTO.MP_ID + ":*");
    solrQuery.setFields(MpDTO.MP_ID);
    solrQuery.setRows(1000000);
    QueryResponse rsp;
    rsp = solr.query(solrQuery);
    List<MpDTO> mps = rsp.getBeans(MpDTO.class);
    Set<String> allPhenotypes = new HashSet();

    for (MpDTO mp : mps) {
        allPhenotypes.add(mp.getMpId());
    }

    return allPhenotypes;
}

From source file:uk.ac.ebi.phenotype.service.MpService.java

License:Apache License

public ArrayList<String> getChildrenFor(String mpId) throws SolrServerException {

    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery(MpDTO.MP_ID + ":\"" + mpId + "\"");
    solrQuery.setFields(MpDTO.CHILD_MP_ID);
    QueryResponse rsp = solr.query(solrQuery);
    SolrDocumentList res = rsp.getResults();

    //      System.out.println("Solr URL to getChildrenFor: " + solr.getBaseURL() + "/select?" + solrQuery);
    ArrayList<String> children = new ArrayList<String>();

    for (SolrDocument doc : res) {
        if (doc.containsKey(MpDTO.CHILD_MP_ID)) {
            for (Object child : doc.getFieldValues(MpDTO.CHILD_MP_ID)) {
                children.add((String) child);
            }/*from  ww w .j a  v a 2 s.c o  m*/
        }
    }
    return children;
}

From source file:uk.ac.ebi.phenotype.solr.indexer.AlleleIndexer.java

License:Apache License

private void populateDiseaseLookup() throws SolrServerException {

    int docsRetrieved = 0;
    int numDocs = getDiseaseDocCount();

    // Fields in the solr core to bring back
    String fields = StringUtils.join(Arrays.asList(DiseaseBean.DISEASE_ID, DiseaseBean.MGI_ACCESSION_ID,
            DiseaseBean.DISEASE_SOURCE, DiseaseBean.DISEASE_TERM, DiseaseBean.DISEASE_ALTS,
            DiseaseBean.DISEASE_CLASSES, DiseaseBean.HUMAN_CURATED, DiseaseBean.MOUSE_CURATED,
            DiseaseBean.MGI_PREDICTED, DiseaseBean.IMPC_PREDICTED, DiseaseBean.MGI_PREDICTED_KNOWN_GENE,
            DiseaseBean.IMPC_PREDICTED_KNOWN_GENE, DiseaseBean.MGI_NOVEL_PREDICTED_IN_LOCUS,
            DiseaseBean.IMPC_NOVEL_PREDICTED_IN_LOCUS), ",");

    // The solrcloud instance cannot give us all results back at once,
    // we must batch up the calls and build it up piece at a time
    while (docsRetrieved < numDocs + PHENODIGM_BATCH_SIZE) {

        SolrQuery query = new SolrQuery("*:*");
        query.addFilterQuery("type:disease_gene_summary");
        query.setFields(fields);
        query.setStart(docsRetrieved);/* w  w w  . j  a va  2  s  .co m*/
        query.setRows(PHENODIGM_BATCH_SIZE);
        query.setSort(DiseaseBean.DISEASE_ID, SolrQuery.ORDER.asc);

        QueryResponse response = phenodigmCore.query(query);
        List<DiseaseBean> diseases = response.getBeans(DiseaseBean.class);
        for (DiseaseBean disease : diseases) {
            if (!diseaseLookup.containsKey(disease.getMgiAccessionId())) {
                diseaseLookup.put(disease.getMgiAccessionId(), new ArrayList<DiseaseBean>());
            }
            diseaseLookup.get(disease.getMgiAccessionId()).add(disease);
        }

        docsRetrieved += PHENODIGM_BATCH_SIZE;
        logger.info("Processed {} documents from phenodigm. {} genes in the index", docsRetrieved,
                diseaseLookup.size());

    }
}

From source file:uk.ac.ebi.phis.service.AutosuggestService.java

License:Apache License

private SolrQuery buildAutosuggestQuery(String term, AutosuggestTypes type, String stage, String imagingMethod,
        String taxon, String sampleType, String imageGeneratedBy, Integer rows) {

    SolrQuery solrQuery = new SolrQuery();

    term = handleSpecialCharacters(term);
    imagingMethod = handleSpecialCharacters(imagingMethod);
    taxon = handleSpecialCharacters(taxon);
    sampleType = handleSpecialCharacters(sampleType);
    imageGeneratedBy = handleSpecialCharacters(imageGeneratedBy);

    solrQuery.setQuery(term);/*from  ww w  .  j ava 2 s . com*/
    solrQuery.setFields(ImageDTO.TERM_AUTOSUGGEST);
    solrQuery.set("defType", "edismax");
    solrQuery.set("qf", "term_autosuggest term_autosuggest_ws term_autosuggest_e term_autosuggest_na");
    solrQuery.set("bq", "term_autosuggest_ws:\"" + term + "\"^10 term_autosuggest_e:\"" + term
            + "\"^100 term_autosuggest_na:\"" + term + "\"^1000 term_autosuggest:\"" + term + "\"^1");
    solrQuery.setRows(rows); // number of groups to return (not result documents)

    if (type != null) {
        solrQuery.addFilterQuery(AutosuggestDTO.AUTOSUGGEST_TYPE + ":" + type);
    }
    if (stage != null) {
        solrQuery.addFilterQuery(AutosuggestDTO.STAGE + ":\"" + stage + "\"");
    }
    if (taxon != null) {
        solrQuery.addFilterQuery(AutosuggestDTO.TAXON + ":\"" + taxon + "\"");
    }
    if (sampleType != null) {
        solrQuery.addFilterQuery(AutosuggestDTO.SAMPLE_TYPE + ":\"" + sampleType + "\"");
    }
    if (imagingMethod != null) {
        solrQuery.addFilterQuery(AutosuggestDTO.IMAGING_METHOD + ":\"" + imagingMethod + "\"");
    }
    if (imageGeneratedBy != null) {
        solrQuery.addFilterQuery(AutosuggestDTO.IMAGE_GENERATED_BY + ":\"" + imageGeneratedBy + "\"");
    }

    return solrQuery;
}

From source file:uk.co.flax.biosolr.ontology.search.solr.SolrOntologySearch.java

License:Apache License

@Override
public ResultsList<OntologyEntryBean> searchOntology(String term, List<String> filters, int start, int rows,
        List<String> fields) throws SearchEngineException {
    ResultsList<OntologyEntryBean> results = null;

    try {/*  w w w  . ja  v  a2s.  com*/
        SolrQuery query = new SolrQuery(term);
        if (filters != null && !filters.isEmpty()) {
            query.addFilterQuery(filters.toArray(new String[filters.size()]));
        }
        if (fields != null && !fields.isEmpty()) {
            query.setFields(fields.toArray(new String[fields.size()]));
        }
        query.setStart(start);
        query.setRows(rows);
        query.setRequestHandler(config.getOntologyRequestHandler());

        LOGGER.trace("Ontology search URL: {}", getQueryUrl(query, config.getOntologyUrl()));

        QueryResponse response = server.query(query);
        List<OntologyEntryBean> annotations = response.getBeans(OntologyEntryBean.class);
        results = new ResultsList<>(annotations, rows, (start / rows), response.getResults().getNumFound());
    } catch (SolrServerException e) {
        throw new SearchEngineException(e);
    }

    return results;
}

From source file:uk.co.flax.ukmp.search.solr.SolrSearchEngine.java

License:Apache License

@Override
public SearchResults getTextBatch(int batchNum) throws SearchEngineException {
    SearchResults results;//from ww  w. j  a  v  a2s.  co m
    TermsConfiguration termsConfig = config.getTermsConfiguration();

    SolrQuery query = new SolrQuery("*:*");
    query.setRequestHandler(termsConfig.getHandler());
    query.setFields(termsConfig.getField());
    query.setRows(termsConfig.getBatchSize());
    query.setStart(batchNum * termsConfig.getBatchSize());
    query.addFilterQuery(termsConfig.getFilters().toArray(new String[0]));

    try {
        QueryResponse response = server.query(query);
        SolrDocumentList docs = response.getResults();

        // Attempt to ensure we always return at least one batch of results
        if (docs.getNumFound() == 0) {
            LOGGER.debug("No tweets found in text batch - running again without filters");
            docs = runQueryWithoutFilters(query, termsConfig.getFilters());
        }

        List<Tweet> tweets = new ArrayList<Tweet>(docs.size());
        for (SolrDocument doc : docs) {
            Tweet tweet = new Tweet();
            tweet.setText((String) doc.getFieldValue(termsConfig.getField()));
            tweets.add(tweet);
        }

        results = new SearchResults(query.getStart(), docs.getNumFound(), query.getRows(), tweets, null);
    } catch (SolrServerException e) {
        LOGGER.error("Server exception caught getting text batch {}: {}", batchNum, e.getMessage());
        throw new SearchEngineException(e);
    }

    return results;
}