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

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

Introduction

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

Prototype

public SolrQuery setRows(Integer rows) 

Source Link

Usage

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;
}