List of usage examples for org.apache.solr.client.solrj SolrQuery set
public ModifiableSolrParams set(String name, String... val)
From source file:se.uu.ub.cora.solrsearch.SolrRecordSearch.java
License:Open Source License
private void createQueryForFinal(SolrQuery solrQuery, DataAtomic childElementFromSearchAsAtomic, String indexFieldName) {//from ww w. ja va2s .co m String searchStringWithParenthesis = getSearchStringFromChildAndSurroundWithParenthesis( childElementFromSearchAsAtomic); String queryString = indexFieldName + ":" + searchStringWithParenthesis; solrQuery.set("q", queryString); }
From source file:sk.opendata.odn.ui.panel.ResultPanel.java
License:Open Source License
/** * Update the search results display with items obtained using given query. * /*from w w w. ja v a 2s. co m*/ * See http://wiki.apache.org/solr/ExtendedDisMax . * * @param query SOLR ExtendedDisMax (i.e. user friendly) query * @throws IOException when creation of SOLR back-end fails * @throws SolrServerException when SOLR query fails */ public void doSearch(final String query) throws IOException, SolrServerException { if (query.isEmpty()) // nothing to do with empty search query return; SolrRepository solrRepository = SolrRepository.getInstance(); SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery(query); solrQuery.set("defType", "edismax"); // prepare the SOLR query // we're trying to identify some "basic" query types and perform tuning those special cases if (query.matches("[0-9]{8}")) { // ICO solrQuery.set("qf", "ico^2 " + "donor_ico " + "customer_ico " + "supplier_ico"); } else if (PscUtil.isPsc(query)) { // PCS solrQuery.set("qf", "donor_psc^2 " + "seat " + // TODO: this is "text_general' in SOLR schema and here PSC might still be in a form "058 01" thus searching for "05801" wont match it "donor_address" // TODO: -"- ); // re-set query to normalized PSC solrQuery.setQuery(PscUtil.normalize(query)); } else { // default solrQuery.set("qf", "name^3 " + "legal_form^0.5 " + "seat " + "ico^2 " + "date_from " + "date_to " + "donor_name^2 " + "donor_surname^2 " + "donor_company^2 " + "donor_ico " + "currency^0.5 " + "donor_address " + "donor_psc " + "donor_city " + "recipient_party^0.75 " + "year " + "accept_date " + "note^0.5 " + "procurement_subject " + "customer_ico " + "supplier_ico"); } // TODO: paging - for now we just limit the search result list int page = 0; solrQuery.setStart(page * RESULTS_PER_PAGE); solrQuery.setRows(RESULTS_PER_PAGE); logger.debug("XXX SOLR query: " + solrQuery.toString()); // obtain results QueryResponse queryResponse = solrRepository.getSolrServer().query(solrQuery); List<SolrItem> responseItems = queryResponse.getBeans(SolrItem.class); // update the display resultList.addAll(responseItems); }
From source file:sk.opendatanode.utils.SolrQueryHelper.java
License:Open Source License
public static QueryResponse search(PageParameters parameters) throws SolrServerException, IOException { final String q = parameters.get("q").toString("").trim(); SolrQuery solrQuery = new SolrQuery(); if (q.isEmpty()) { // chceme mat prazdny result, posielame kvoli facet informaciam solrQuery.setQuery("*:*"); if (parameters.getNamedKeys().size() > 0) { solrQuery.setRows(SolrServerRep.MAX_RESULT_ROWS); } else {// w ww .j a v a 2 s. c om solrQuery.setRows(0); } } else { solrQuery.setQuery(q); solrQuery.setRows(SolrServerRep.MAX_RESULT_ROWS); } solrQuery.set("defType", "edismax"); setQueryFields(solrQuery); // pridame filtre z parametrov pre stranku do parametrov pre solr query addFilters(solrQuery, parameters); SolrQueryHelper.addFacetParameters(solrQuery, parameters); // odoslanie return SolrServerRep.getInstance().sendQuery(solrQuery); }
From source file:sk.opendatanode.utils.SolrQueryHelper.java
License:Open Source License
private static void setQueryFields(SolrQuery solrQuery) { solrQuery.set("qf", "name^3 " + "legal_form^0.5 " + "seat " + "ico^2 " + "date_from " + "date_to " + "donor_name^2 " + "donor_surname^2 " + "donor_company^2 " + "donor_ico " + "currency^0.5 " + "donor_address " + "donor_psc " + "donor_city " + "recipient_party^0.75 " + "year " + "accept_date " + "note^0.5 " + "procurement_subject " + "customer_ico " + "supplier_ico"); }
From source file:uk.ac.ebi.intact.dataexchange.psimi.solr.IntactSolrSearcher.java
License:Apache License
public Multimap<String, InteractorIdCount> searchInteractors(SolrQuery originalQuery, IntactFacetField[] intactFacetFields) throws IntactSolrException { SolrQuery query = originalQuery.getCopy(); query.setRows(0);/*w w w .j a v a 2 s .c o m*/ // we allow faceting query.setFacet(true); // we want all the facet fields with min count = 1. The facet fields with count = 0 are not interesting query.setFacetMinCount(1); Multimap<String, InteractorIdCount> interactors = HashMultimap.create(); if (intactFacetFields != null) { // we sort the results : the biggest count first query.setFacetSort(FacetParams.FACET_SORT_COUNT); for (IntactFacetField facetField : intactFacetFields) { final String fieldName = createFieldName(facetField.getFieldName()); // important optimization. We don't want to return all the fields, only a certain number for pagination if (facetField.getFirst() != null) { query.set("f." + fieldName + ".facet.offset", facetField.getFirst()); } if (facetField.getMax() != null) { query.set("f." + fieldName + ".facet.limit", facetField.getMax()); } query.addFacetField(fieldName); } } QueryResponse queryResponse = executeQuery(query); List<FacetField> facetFields = queryResponse.getFacetFields(); if (facetFields == null || facetFields.isEmpty()) { return interactors; } for (FacetField ff : facetFields) { if (ff != null && ff.getValues() != null) { for (FacetField.Count c : ff.getValues()) { interactors.put(extractInteractorTypeFromFieldName(ff.getName()), new InteractorIdCount(c.getName(), c.getCount())); } } } return interactors; }
From source file:uk.ac.ebi.intact.dataexchange.psimi.solr.IntactSolrSearcher.java
License:Apache License
public Map<String, Integer> countAllInteractors(SolrQuery originalQuery, String[] interactorTypeMis) throws IntactSolrException { boolean endOfFacetResults = false; int firstResults = 0; Map<String, Integer> results = new HashMap<String, Integer>(); while (!endOfFacetResults) { int chunkResults = 0; SolrQuery query = originalQuery.getCopy(); query.setRows(0);//from www. j a v a 2 s. co m // we allow faceting query.setFacet(true); // we want all the facet fields with min count = 1. The facet fields with count = 0 are not interesting query.setFacetMinCount(1); // important optimization. We don't want to return all the fields, only a certain number for pagination query.set(FacetParams.FACET_OFFSET, firstResults); query.setFacetLimit(CHUNK_FACET_THRESHOLD); // we sort the results : the biggest count first query.setFacetSort(FacetParams.FACET_SORT_COUNT); for (String mi : interactorTypeMis) { final String fieldName = createFieldName(mi); query.addFacetField(fieldName); } QueryResponse queryResponse = executeQuery(query); List<FacetField> facetFields = queryResponse.getFacetFields(); if (facetFields == null || facetFields.isEmpty()) { endOfFacetResults = true; } else { for (FacetField facetField : facetFields) { if (facetField.getValueCount() > 0) { chunkResults += facetField.getValueCount(); if (results.containsKey(facetField.getName())) { int current = results.get(facetField.getName()); results.put(facetField.getName(), current + facetField.getValueCount()); } else { results.put(facetField.getName(), facetField.getValueCount()); } } else if (!results.containsKey(facetField.getName())) { results.put(facetField.getName(), 0); } } if (chunkResults < CHUNK_FACET_THRESHOLD) { endOfFacetResults = true; } } firstResults += CHUNK_FACET_THRESHOLD; } return results; }
From source file:uk.ac.ebi.intact.dataexchange.psimi.solr.ontology.OntologySearcher.java
License:Apache License
public Set<String> getOntologyNames() throws SolrServerException { if (ontologyNames == null) { SolrQuery query = new SolrQuery("*:*"); query.setStart(0);/*from www.j av a 2 s . c o m*/ query.setRows(0); // prepare faceting query.setFacet(true); query.setParam(FacetParams.FACET_FIELD, "ontology"); query.setFacetLimit(10); query.setFacetMinCount(1); query.set(FacetParams.FACET_OFFSET, 0); // order by unique id query.addSortField(OntologyFieldNames.ID, SolrQuery.ORDER.asc); QueryResponse response = search(query, null); FacetField facetField = response.getFacetField("ontology"); if (facetField.getValues() == null) { return Collections.EMPTY_SET; } ontologyNames = new HashSet<String>(facetField.getValues().size()); for (FacetField.Count c : facetField.getValues()) { ontologyNames.add(c.getName()); } } return ontologyNames; }
From source file:uk.ac.ebi.phenotype.imaging.springrest.images.dao.ImagesSolrJ.java
License:Apache License
/** * Returns documents from Solr Index filtered by the passed in query * filterField e.g. annotationTerm:large ear * @throws SolrServerException /*from ww w . j av a2s . com*/ * * */ public QueryResponse getFilteredDocsForQuery(String query, List<String> filterFields, String qf, String defType, int start, int length) throws SolrServerException { 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 server.query(solrQuery); }
From source file:uk.ac.ebi.phenotype.service.ObservationService.java
License:Apache License
public List<Group> getDatapointsByColony(ArrayList<String> resourceName, String parameterStableId, String biologicalSampleGroup) throws SolrServerException { SolrQuery q = new SolrQuery(); if (resourceName != null) { q.setQuery(ObservationDTO.DATASOURCE_NAME + ":" + StringUtils.join(resourceName, " OR " + ObservationDTO.DATASOURCE_NAME + ":")); } else {/* www . jav a2s . co m*/ q.setQuery("*:*"); } if (parameterStableId != null) { q.addFilterQuery(ObservationDTO.PARAMETER_STABLE_ID + ":" + parameterStableId); } q.addFilterQuery(ObservationDTO.BIOLOGICAL_SAMPLE_GROUP + ":" + biologicalSampleGroup); q.set("group", true); q.set("group.field", ObservationDTO.COLONY_ID); q.set("group.limit", 10000); q.set("group.sort", ObservationDTO.DATE_OF_EXPERIMENT + " ASC"); q.setFields(ObservationDTO.DATA_POINT, ObservationDTO.ZYGOSITY, ObservationDTO.SEX, ObservationDTO.DATE_OF_EXPERIMENT, ObservationDTO.ALLELE_SYMBOL, ObservationDTO.GENE_SYMBOL, ObservationDTO.COLONY_ID, ObservationDTO.ALLELE_ACCESSION_ID, ObservationDTO.PIPELINE_ID, ObservationDTO.PHENOTYPING_CENTER, ObservationDTO.GENE_ACCESSION_ID, ObservationDTO.STRAIN_ACCESSION_ID, ObservationDTO.PARAMETER_ID, ObservationDTO.PHENOTYPING_CENTER_ID); q.setRows(10000); System.out.println( "Solr url for getOverviewGenesWithMoreProceduresThan " + solr.getBaseURL() + "/select?" + q); return solr.query(q).getGroupResponse().getValues().get(0).getValues(); }
From source file:uk.ac.ebi.phenotype.service.ObservationService.java
License:Apache License
public List<String> getGenesWithMoreProcedures(int n, ArrayList<String> resourceName) throws SolrServerException, InterruptedException, ExecutionException { List<String> genes = new ArrayList<>(); SolrQuery q = new SolrQuery(); if (resourceName != null) { q.setQuery(ObservationDTO.DATASOURCE_NAME + ":" + StringUtils.join(resourceName, " OR " + ObservationDTO.DATASOURCE_NAME + ":")); } else {// w w w. ja v a 2s .co m q.setQuery("*:*"); } String geneProcedurePivot = ObservationDTO.GENE_SYMBOL + "," + ObservationDTO.PROCEDURE_NAME; q.add("facet.pivot", geneProcedurePivot); q.setFacet(true); q.setRows(1); q.setFacetMinCount(1); q.set("facet.limit", -1); System.out.println( "Solr url for getOverviewGenesWithMoreProceduresThan " + solr.getBaseURL() + "/select?" + q); QueryResponse response = solr.query(q); for (PivotField pivot : response.getFacetPivot().get(geneProcedurePivot)) { if (pivot.getPivot().size() >= n) { genes.add(pivot.getValue().toString()); } } return genes; }