List of usage examples for org.apache.solr.client.solrj SolrQuery setFields
public SolrQuery setFields(String... fields)
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; }