List of usage examples for org.apache.solr.client.solrj SolrQuery setRows
public SolrQuery setRows(Integer rows)
From source file:org.ala.dao.FulltextSearchDaoImplSolr.java
License:Open Source License
/** * Helper method to create SolrQuery facets for dataset counts * * @return solrQuery the SolrQuery/* www.j a v a 2s . c o m*/ */ protected SolrQuery initCountsQuery(String facetField) { SolrQuery solrQuery = new SolrQuery(); solrQuery.setQueryType("standard"); solrQuery.setFacet(true); solrQuery.addFacetField(facetField); solrQuery.setFacetMinCount(0); solrQuery.setFacetLimit(10000); solrQuery.setRows(1); solrQuery.setStart(0); return solrQuery; }
From source file:org.ala.dao.FulltextSearchDaoImplSolr.java
License:Open Source License
/** *//*from w w w .j a v a 2s .c o m*/ @Deprecated public List<AutoCompleteDTO> _getAutoCompleteList(String value, IndexedTypes indexType, boolean gsOnly, int maxTerms) { StringBuffer queryString = new StringBuffer(); // String cleanQuery = ClientUtils.escapeQueryChars(value);//.toLowerCase(); // String cleanQuery = SolrUtils.cleanName(value); String cleanQuery = value.toLowerCase(); cleanQuery = cleanQuery.trim().replaceAll("[()]", ""); //remove '(' and ')' cleanQuery = cleanQuery.replaceAll("\\s+", " "); //replace multiple spaces to single space if (StringUtils.trimToNull(cleanQuery) != null && cleanQuery.length() >= 3) { if (indexType != null) { queryString.append("idxtype:" + indexType); queryString.append(" AND "); } if (gsOnly) { queryString.append("georeferencedCount:[1 TO *]"); queryString.append(" AND "); } queryString.append("("); List<AutoCompleteDTO> items = new ArrayList<AutoCompleteDTO>(); SolrQuery solrQuery = null; solrQuery = new SolrQuery(); queryString.append(" scientificName:\"" + cleanQuery + "\"");// boost classification ranking on top of list queryString.append(" OR "); queryString.append("auto_text:\"" + cleanQuery + "\""); queryString.append(" OR "); queryString.append("auto_text_edge:\"" + cleanQuery + "\""); //This field ensures that matches at the start of the term have a higher ranking queryString.append(" OR "); queryString.append("concat_name:\"" + SolrUtils.concatName(cleanQuery) + "\""); queryString.append(" OR "); queryString.append(replacePrefix("name_complete", cleanQuery)); // queryString.append("name_complete:\""+cleanQuery+"\""); queryString.append(" OR "); queryString.append(replacePrefix("stopped_common_name", cleanQuery)); queryString.append(")"); solrQuery.setQuery(queryString.toString()); solrQuery.setQueryType("standard"); solrQuery.setFields("*", "score"); solrQuery.setRows(maxTerms); QueryResponse qr; try { qr = solrUtils.getSolrServer().query(solrQuery); SolrDocumentList sdl = qr.getResults(); if (sdl != null && !sdl.isEmpty()) { for (SolrDocument doc : sdl) { if (IndexedTypes.TAXON.toString().equalsIgnoreCase((String) doc.getFieldValue("idxtype"))) { items.add(createAutoCompleteFromIndex(qr, doc, value)); } // else if(IndexedTypes.COLLECTION.toString().equalsIgnoreCase((String)doc.getFieldValue("idxtype"))){ // results.add(createCollectionFromIndex(qr, doc)); // } else if(IndexedTypes.INSTITUTION.toString().equalsIgnoreCase((String)doc.getFieldValue("idxtype"))){ // results.add(createInstitutionFromIndex(qr, doc)); // } else if(IndexedTypes.DATAPROVIDER.toString().equalsIgnoreCase((String)doc.getFieldValue("idxtype"))){ // results.add(createDataProviderFromIndex(qr, doc)); // } else if(IndexedTypes.DATASET.toString().equalsIgnoreCase((String)doc.getFieldValue("idxtype"))){ // results.add(createDatasetFromIndex(qr, doc)); // } else if(IndexedTypes.REGION.toString().equalsIgnoreCase((String)doc.getFieldValue("idxtype"))){ // results.add(createRegionFromIndex(qr, doc)); // } else if(IndexedTypes.LOCALITY.toString().equalsIgnoreCase((String)doc.getFieldValue("idxtype"))){ //// results.add(createTaxonConceptFromIndex(qr, doc)); // } } } } catch (Exception e) { logger.error(e); } return items; } return new ArrayList<AutoCompleteDTO>(); }
From source file:org.ala.dao.FulltextSearchDaoImplSolr.java
License:Open Source License
public Collection getRankingFacetByUserIdAndGuid(String userId, String guid) throws Exception { String key = null;//from w w w. j ava2 s .com String sortField = null; try { String[] fq = new String[] {}; SolrQuery solrQuery = new SolrQuery(); solrQuery.setQueryType("standard"); solrQuery.setRows(0); solrQuery.setFacet(true); solrQuery.setFacetMinCount(1); solrQuery.setFacetLimit(-1); // unlimited = -1 if (guid == null || guid.length() < 1 || "*".equals(guid)) { key = "*"; solrQuery.addFacetField("guid"); sortField = "guid"; } else { key = ClientUtils.escapeQueryChars(guid); sortField = "superColumnName"; } solrQuery.addFacetField("superColumnName"); solrQuery.setQuery("idxtype:" + IndexedTypes.RANKING + " AND userId:" + userId + " AND guid:" + key); SearchResultsDTO qr = doSolrQuery(solrQuery, fq, 100, 0, sortField, "asc"); if (qr == null || qr.getFacetResults() == null) { return new ArrayList(); } return qr.getFacetResults(); } catch (SolrServerException ex) { logger.error("Problem communicating with SOLR server. " + ex.getMessage(), ex); return new ArrayList(); } }
From source file:org.ala.dao.FulltextSearchDaoImplSolr.java
License:Open Source License
public Collection getUserIdFacetByGuid(String guid) throws Exception { String key = null;//ww w . ja v a2 s .c om try { String[] fq = new String[] {}; SolrQuery solrQuery = new SolrQuery(); solrQuery.setQueryType("standard"); solrQuery.setRows(0); solrQuery.setFacet(true); solrQuery.setFacetMinCount(1); solrQuery.setFacetLimit(-1); // unlimited = -1 if (guid == null || guid.length() < 1 || "*".equals(guid)) { logger.info("Invalid guid: " + guid); return new ArrayList(); } else { key = ClientUtils.escapeQueryChars(guid); } solrQuery.addFacetField("userId"); solrQuery.setQuery("idxtype:" + IndexedTypes.RANKING + " AND guid:" + key); SearchResultsDTO qr = doSolrQuery(solrQuery, fq, 100, 0, "userId", "asc"); if (qr == null || qr.getFacetResults() == null) { return new ArrayList(); } return qr.getFacetResults(); } catch (SolrServerException ex) { logger.error("Problem communicating with SOLR server. " + ex.getMessage(), ex); return new ArrayList(); } }
From source file:org.ala.dao.FulltextSearchDaoImplSolr.java
License:Open Source License
/** * NC 2013-03-13: This method is no longer being used. This is because we never want to limit auto completes to * exact matches as this would be confusing. This method should be deleted. * /*from w w w.ja v a 2 s. c o m*/ * * @param value * @param filterQuery * @param indexType * @param gsOnly * @param maxTerms * @return */ @Deprecated private SolrQuery buildAutoExactMatchQuery(String value, String[] filterQuery, IndexedTypes indexType, boolean gsOnly, int maxTerms) { StringBuffer queryString = new StringBuffer(); SolrQuery solrQuery = new SolrQuery(); String cleanQuery = value.toLowerCase(); cleanQuery = cleanQuery.trim().replaceAll("[()]", ""); //remove '(' and ')' cleanQuery = cleanQuery.replaceAll("\\s+", " "); //replace multiple spaces to single space if (indexType != null) { queryString.append("idxtype:" + indexType); queryString.append(" AND "); } if (gsOnly) { queryString.append("georeferencedCount:[1 TO *]"); queryString.append(" AND "); } queryString.append("("); queryString.append("scientificNameText:\"" + cleanQuery + "\""); // boost classification to top of list (eg: genus, species, subspecies) queryString.append(" OR "); queryString.append("exact_text:\"" + cleanQuery + "\""); queryString.append(" OR "); queryString.append(replacePrefix("stopped_common_name", cleanQuery)); queryString.append(")"); solrQuery.setQuery(queryString.toString()); solrQuery.setQueryType("standard"); solrQuery.setFields("*", "score"); solrQuery.setRows(maxTerms); addFqs(solrQuery, filterQuery); return solrQuery; }
From source file:org.ala.dao.FulltextSearchDaoImplSolr.java
License:Open Source License
private SolrQuery buildAutoConcatMatchQuery(String value, String[] filterQuery, IndexedTypes indexType, boolean gsOnly, int maxTerms) { StringBuffer queryString = new StringBuffer(); SolrQuery solrQuery = new SolrQuery(); String cleanQuery = value.toLowerCase(); cleanQuery = cleanQuery.trim().replaceAll("[()]", ""); //remove '(' and ')' cleanQuery = cleanQuery.replaceAll("\\s+", " "); //replace multiple spaces to single space if (indexType != null) { queryString.append("idxtype:" + indexType); queryString.append(" AND "); }// www . j av a2 s. c o m if (gsOnly) { queryString.append("georeferencedCount:[1 TO *]"); queryString.append(" AND "); } queryString.append("("); queryString.append("concat_name:\"" + SolrUtils.concatName(cleanQuery) + "\""); queryString.append(" OR "); queryString.append("scientificNameText:\"" + cleanQuery + "\""); // boost classification to top of list (eg: genus, species, subspecies) queryString.append(" OR "); queryString.append(replacePrefix("stopped_common_name", cleanQuery)); queryString.append(" OR "); queryString.append("auto_text:\"" + cleanQuery + "\""); queryString.append(" OR "); queryString.append("auto_text_edge:\"" + cleanQuery + "\""); //This field ensures that matches at the start of the term have a higher ranking queryString.append(")"); solrQuery.setQuery(queryString.toString()); solrQuery.setQueryType("standard"); solrQuery.setFields("*", "score"); solrQuery.setRows(maxTerms); addFqs(solrQuery, filterQuery); return solrQuery; }
From source file:org.ala.dao.TaxonConceptSHDaoImpl.java
License:Open Source License
/** * Returns the LSID for the CB name usage for the supplied common name. */* w w w .j a va 2 s. c o m*/ * When the common name returns more than 1 hit a result is only returned if all the scientific names match * * @return */ public String findLSIDByCommonName(String commonName) { String lsid = null; StringBuffer queryString = new StringBuffer(); String cleanQuery = SolrUtils.cleanName(commonName); queryString.append("stopped_common_name:\"" + cleanQuery + "\""); queryString.append(" OR exact_text:\"" + cleanQuery + "\""); SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery(queryString.toString()); solrQuery.setQueryType("standard"); solrQuery.setFields("*", "score"); solrQuery.setRows(10); try { QueryResponse qr = solrUtils.getSolrServer().query(solrQuery); SolrDocumentList sdl = qr.getResults(); if (sdl != null && sdl.size() == 1) { SolrDocument doc = sdl.get(0); lsid = (String) doc.getFieldValue("guid"); } } catch (Exception e) { // do nothing } if (lsid == null || lsid.length() < 1) { lsid = cbIdxSearcher.searchForLSIDCommonName(commonName); } return lsid; }
From source file:org.ala.dao.TaxonConceptSHDaoImpl.java
License:Open Source License
public String findLSIDByConcatName(String name) { String concatName = SolrUtils.concatName(name); SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery("concat_name:\"" + concatName + "\""); solrQuery.setQueryType("standard"); solrQuery.setFields("*", "score"); solrQuery.setRows(10); try {/*from w w w . j a va 2 s.c o m*/ QueryResponse qr = solrUtils.getSolrServer().query(solrQuery); SolrDocumentList sdl = qr.getResults(); if (sdl != null && sdl.size() == 1) { SolrDocument doc = sdl.get(0); return (String) doc.getFieldValue("guid"); } } catch (Exception e) { // do nothing } return null; }
From source file:org.ambraproject.article.service.BrowseServiceImpl.java
License:Apache License
private Years loadArticleDates(String journalKey) { Years dates = new Years(); SolrQuery query = createCommonQuery(journalKey); query.setFacet(true);/*from w ww . j ava 2 s .c o m*/ query.addFacetField("publication_date"); query.setFacetLimit(-1); query.setFacetMinCount(1); query.setRows(0); try { QueryResponse response = this.serverFactory.getServer().query(query); FacetField ff = response.getFacetField("publication_date"); List<FacetField.Count> counts = ff.getValues(); for (FacetField.Count count : counts) { String publicationDate = count.getName(); Integer y = getYear(publicationDate); Integer m = getMonth(publicationDate); Integer d = getDay(publicationDate); dates.getMonths(y).getDays(m).add(d); } } catch (SolrServerException e) { log.error("Unable to execute a query on the Solr Server.", e); } return dates; }
From source file:org.ambraproject.article.service.BrowseServiceImpl.java
License:Apache License
/** * Get a list of article counts for each category * * @param journalKey the current journal * * @return category info/* w w w. j a v a2 s . co m*/ */ private SortedMap<String, Long> getSubjectsForJournalViaSolr(String journalKey) { SortedMap<String, Long> categories = new TreeMap<String, Long>(); SolrQuery query = createCommonQuery(journalKey); query.setFacet(true); query.addFacetField("subject_level_1"); query.setFacetLimit(-1); query.setFacetMinCount(1); query.setRows(0); try { QueryResponse response = this.serverFactory.getServer().query(query); FacetField ff = response.getFacetField("subject_level_1"); List<FacetField.Count> counts = ff.getValues(); if (counts != null) { for (FacetField.Count count : counts) { categories.put(count.getName(), count.getCount()); } } } catch (SolrServerException e) { log.error("Unable to execute a query on the Solr Server.", e); } return categories; }