List of usage examples for org.apache.solr.client.solrj SolrQuery setFields
public SolrQuery setFields(String... fields)
From source file:org.dspace.app.cris.network.AVisualizationGraphModeThree.java
@Override public List<VisualizationGraphNode> load(List<String[]> discardedNode, Integer importedNodes, Boolean otherError) throws Exception { // load all publications SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery(getQuery());/*from www. j av a2 s .c om*/ solrQuery.setFields(getFields()); solrQuery.addFilterQuery("search.resourcetype:" + getResourceType()); int start = 0; int offset = 100; if (NOT_PAGINATION) { solrQuery.setRows(Integer.MAX_VALUE); } else { solrQuery.setStart(start); solrQuery.setRows(offset); } QueryResponse rsp = getService().getSearcher().search(solrQuery); SolrDocumentList publications = rsp.getResults(); System.out.println(publications.getNumFound()); List<VisualizationGraphNode> result = null; boolean endwhile = false; while (((publications.getNumFound() + offset) > start) && endwhile == false) { if (start > 0 && !NOT_PAGINATION) { solrQuery.setStart(start); solrQuery.setRows(offset); rsp = getService().getSearcher().search(solrQuery); publications = rsp.getResults(); } start = (start + 1) + offset; // for each publication get authority's authors facets Iterator<SolrDocument> iter = publications.iterator(); int counter = 0; external: while (iter.hasNext()) { counter++; log.debug("" + (start == 0 ? counter : (start + counter)) + " of " + publications.getNumFound()); System.out.println(getConnectionName() + " - " + counter); result = new ArrayList<VisualizationGraphNode>(); Integer pubId = null; try { SolrDocument publication = iter.next(); pubId = (Integer) publication.getFieldValue("search.resourceid"); Object obj = publication.getFieldValue(getNameFieldValueInFields()); String handle = (String) publication.getFirstValue(getNameFieldExtraInFields()); Object auth = publication.getFieldValue(getNameFieldNodeBuilderInFields()); List<String> values = new ArrayList<String>(); if (obj instanceof ArrayList) { for (String aaa : (List<String>) obj) { values.add(aaa); } } else { String value = (String) obj; values.add(value); } if (auth instanceof ArrayList) { int i = 0; List<String> authArrays = (List<String>) auth; for (String aaa : authArrays) { String[] split = aaa.split("\\|\\|\\|"); String a = aaa; String a_authority = null; String a_dept = null; String a_displayValue = ""; if (split.length > 1) { String[] splitAuthority = split[1].split(splitterAuthority); a_displayValue = splitAuthority[0]; if (split.length > 1) { a_authority = splitAuthority[1]; // a_dept = ResearcherPageUtils // .getDepartment(a_authority); a_dept = getDepartmentFromSOLR(a_authority); } } for (int j = i; j < authArrays.size(); j++) { String bbb = authArrays.get(j); String extra = handle; split = bbb.split("\\|\\|\\|"); String b = bbb; String b_authority = null; String b_dept = null; String b_displayValue = ""; if (split.length > 1) { String[] splitAuthority = split[1].split(splitterAuthority); b_displayValue = splitAuthority[0]; if (split.length > 1) { b_authority = splitAuthority[1]; // a_dept = ResearcherPageUtils // .getDepartment(a_authority); b_dept = getDepartmentFromSOLR(a_authority); } } if (j == i) { buildRow(result, a, a_authority, a_displayValue, b, b_authority, b_displayValue, values, extra, a_dept, b_dept, ConstantNetwork.ENTITY_PLACEHOLDER_RP); } else { buildRow(result, a, a_authority, a_displayValue, b, b_authority, b_displayValue, values, extra, a_dept, b_dept, ConstantNetwork.ENTITY_RP); } } i++; } } else { continue external; } } catch (Exception e) { log.error("Error try to build object to index with publication ID:" + pubId); log.error(e.getMessage(), e); otherError = true; continue; } importedNodes = indexNode(discardedNode, importedNodes, result); } if (NOT_PAGINATION) { endwhile = true; } log.debug("commit " + getType()); getIndexer().commit(); } return result; }
From source file:org.dspace.app.cris.ws.WSServicesCRIS.java
public void internalBuildFieldList(SolrQuery solrQuery, String... projection) { solrQuery.setFields(projection); solrQuery.addField("search.resourceid"); solrQuery.addField("search.resourcetype"); }
From source file:org.dspace.app.webui.cris.servlet.DeptMetricsNetworkServlet.java
@Override protected void doDSGet(Context context, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException { String dept = request.getParameter("dept"); boolean found = false; if (dept == null) { response.sendError(HttpServletResponse.SC_NOT_FOUND, "A department name could be passed as parameter"); } else {/* w w w .j av a 2 s . c om*/ found = true; } // load all publications SolrQuery solrQuery = new SolrQuery(); List<DTOMetric> results = new ArrayList<DTOMetric>(); String connection = ConfigurationManager.getProperty(NetworkPlugin.CFG_MODULE, "network.connection"); String[] connections = connection.split(","); List<String> fieldsToRetrieve = new ArrayList<String>(); fieldsToRetrieve.add("search.resourceid"); fieldsToRetrieve.add("rp_fullname"); for (String conn : connections) { fieldsToRetrieve.add(ConstantNetwork.PREFIX_METADATA_BIBLIOMETRIC_1_RETRIEVE + conn); fieldsToRetrieve.add(ConstantNetwork.PREFIX_METADATA_BIBLIOMETRIC_2_RETRIEVE + conn); fieldsToRetrieve.add(ConstantNetwork.PREFIX_METADATA_BIBLIOMETRIC_3_RETRIEVE + conn); fieldsToRetrieve.add(ConstantNetwork.PREFIX_METADATA_BIBLIOMETRIC_4_RETRIEVE + conn); } String[] fields = fieldsToRetrieve.toArray(new String[] {}); QueryResponse rsp; try { solrQuery = new SolrQuery(); solrQuery.setQuery("search.resourcetype:" + CrisConstants.RP_TYPE_ID + " AND rp_dept:\"" + dept + "\""); solrQuery.setFields(fields); solrQuery.setRows(Integer.MAX_VALUE); rsp = getService().getSearcher().search(solrQuery); SolrDocumentList rows = rsp.getResults(); external: for (String conn : connections) { Iterator<SolrDocument> iter = rows.iterator(); internal: while (iter.hasNext()) { DTOMetric metric = new DTOMetric(); SolrDocument publication = iter.next(); Integer rp_id = (Integer) publication.getFirstValue("search.resourceid"); String rp_fullname = (String) publication.getFirstValue("rp_fullname"); String averageStrength = (String) publication .getFirstValue(ConstantNetwork.PREFIX_METADATA_BIBLIOMETRIC_3_RETRIEVE + conn); String maxStrength = (String) publication .getFirstValue(ConstantNetwork.PREFIX_METADATA_BIBLIOMETRIC_2_RETRIEVE + conn); String numbersConnections = (String) publication .getFirstValue(ConstantNetwork.PREFIX_METADATA_BIBLIOMETRIC_1_RETRIEVE + conn); String quadraticVariance = (String) publication .getFirstValue(ConstantNetwork.PREFIX_METADATA_BIBLIOMETRIC_4_RETRIEVE + conn); metric.setAuthority(ResearcherPageUtils.getPersistentIdentifier(rp_id, ResearcherPage.class)); metric.setFullName(rp_fullname); metric.setType(conn); metric.setAverageStrength(averageStrength); metric.setMaxStrength(maxStrength); metric.setNumbersConnections(numbersConnections); metric.setQuadraticVariance(quadraticVariance); if ((averageStrength == null || averageStrength.isEmpty()) && (maxStrength == null || maxStrength.isEmpty()) && (numbersConnections == null || numbersConnections.isEmpty()) && (quadraticVariance == null || quadraticVariance.isEmpty())) { //do not show anythings } else { results.add(metric); } } } } catch (SearchServiceException e) { log.error(e.getMessage(), new ServletException(e)); } request.setAttribute("dept", dept); request.setAttribute("metrics", results); JSPManager.showJSP(request, response, "/graph/dmetrics.jsp"); }
From source file:org.dspace.app.xmlui.aspect.discovery.BrowseFacet.java
License:Open Source License
/** * Retrieves the lowest date value in the given field * @param query a solr query// www .j av a 2 s.co m * @param dateField the field for which we want to retrieve our date * @param filterquery the filterqueries * @return the lowest date found, in a date object */ private Date getLowestDateValue(String query, String dateField, String... filterquery) { try { SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery(query); solrQuery.setFields(dateField); solrQuery.setRows(1); solrQuery.setSortField(dateField, SolrQuery.ORDER.asc); solrQuery.setFilterQueries(filterquery); QueryResponse rsp = searchService.search(solrQuery); if (0 < rsp.getResults().getNumFound()) { return (Date) rsp.getResults().get(0).getFieldValue(dateField); } } catch (Exception e) { e.printStackTrace(); } return null; }
From source file:org.geotools.data.solr.SolrDataStore.java
License:Open Source License
/** * Builds the SolrJ count query with support of limit/offset, OGC filter encoding and viewParams <br> * Currently only additional "q" and "fq" SOLR parameters can be passed using viewParams, this * conditions are added in AND with others * // www . j av a 2 s . c o m * @param featureType the feature type to query * @param q the OGC query to translate in SOLR request * * @see {@link Hints#VIRTUAL_TABLE_PARAMETERS} * */ protected SolrQuery count(SimpleFeatureType featureType, Query q) { SolrQuery query = new SolrQuery(); query.setParam("omitHeader", true); query.setQuery("*:*"); query.setFields(this.getPrimaryKey(featureType.getName().getLocalPart()).getName()); try { // Encode limit/offset, if necessary if (q.getStartIndex() != null && q.getStartIndex() >= 0) { query.setStart(q.getStartIndex()); } query.setRows(0); // Encode OGC filer FilterToSolr f2s = initializeFilterToSolr(featureType); String fq = this.field + ":" + featureType.getTypeName(); String ffq = f2s.encodeToString(q.getFilter()); if (ffq != null && !ffq.isEmpty()) { fq = fq + " AND " + ffq; } query.setFilterQueries(fq); // Add viewparams parameters addViewparams(q, query); } catch (Exception e) { LOGGER.log(Level.SEVERE, e.getMessage(), e); } return query; }
From source file:org.kuali.ole.docstore.engine.service.rest.DocstoreRestClient_UT.java
License:Open Source License
public void searchBibWithFacets(String facetSort) throws Exception { String[] facets = { "Author_facet", "Format_facet", "Genre_facet", "Language_facet", "PublicationDate_facet", "PublicationDate_sort" }; String[] fieldList = { "LocalId_display", "Title_sort", "Title_display", "JournalTitle_display", "Author_display", "Publisher_display", "ISBN_display", "ISSN_display", "Subject_display", "Publisher_display", "PublicationDate_display", "Edition_display", "Format_display", "Language_display", "Description_display", "FormGenre_display", "DocFormat", "staffOnlyFlag", "bibIdentifier", "holdingsIdentifier" }; String args = "(DocType:bibliographic)AND((*:*))"; SolrServer solr = SolrServerManager.getInstance().getSolrServer(); SolrQuery query = new SolrQuery(); query.setQuery(args);/*from w ww . j a v a 2 s. c om*/ query.setFacet(true); query.addFacetField(facets); query.setFacetMinCount(1); query.setFacetSort(facetSort); query.setFacetLimit(5); query.setFields(fieldList); query.set("facet.offset", "0"); QueryResponse response = solr.query(query); System.out.println("Search result count " + response.getResults().getNumFound() + " and time taken to search is " + response.getQTime()); }
From source file:org.mousephenotype.cda.indexers.AlleleIndexer.java
License:Apache License
private void populateDiseaseLookup() throws SolrServerException, IOException { 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);/*from w w w . ja v a2 s . c o m*/ query.setRows(PHENODIGM_BATCH_SIZE); query.setSort(DiseaseBean.DISEASE_ID, SolrQuery.ORDER.asc); QueryResponse response = phenodigmCore.query(query); if (response == null) { throw new SolrServerException( "Response from phendigm core is null. Chcek phenodigm core is up with query: " + query); } List<DiseaseBean> diseases = response.getBeans(DiseaseBean.class); for (DiseaseBean disease : diseases) { if (!diseaseBeanByMgiGeneAccessionId.containsKey(disease.getMgiAccessionId())) { diseaseBeanByMgiGeneAccessionId.put(disease.getMgiAccessionId(), new ArrayList<DiseaseBean>()); } diseaseBeanByMgiGeneAccessionId.get(disease.getMgiAccessionId()).add(disease); } docsRetrieved += PHENODIGM_BATCH_SIZE; } }
From source file:org.mousephenotype.cda.solr.repositories.image.ImagesSolrJ.java
License:Apache License
private SolrDocumentList runQuery(String query, int start, int length) throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); log.debug("solr query=" + query); solrQuery.setQuery(query);//from w w w . j a v a2 s . co m solrQuery.setStart(start); solrQuery.setRows(length); solrQuery.setFields("id"); QueryResponse rsp = null; rsp = sangerImagesCore.query(solrQuery); return rsp.getResults(); }
From source file:org.mousephenotype.cda.solr.service.ExpressionService.java
License:Apache License
/** * * @param mgiAccession//from w w w . j a va2s. c o m * 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 . co 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; }