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:com.eharmony.matching.seeking.executor.solr.SolrQueryExecutor.java

License:Apache License

@Override
public <T, R> R findOne(Query<T, R> query) {
    SolrQuery solrQuery = translate(query);
    solrQuery.setRows(1);
    List<R> list = fetch(solrQuery, query.getReturnType());
    return list.size() > 0 ? list.get(0) : null;
}

From source file:com.frank.search.solr.core.QueryParserBase.java

License:Apache License

/**
 * Append pagination information {@code start, rows} to
 * {@link org.apache.solr.client.solrj.SolrQuery}
 *
 * @param query//w w  w .  j  a va 2 s .c  om
 * @param offset
 * @param rows
 */
protected void appendPagination(SolrQuery query, Integer offset, Integer rows) {

    if (offset != null && offset.intValue() >= 0) {
        query.setStart(offset);
    }
    if (rows != null && rows.intValue() >= 0) {
        query.setRows(rows);
    }
}

From source file:com.frank.search.solr.core.SolrTemplate.java

License:Apache License

@Override
public long count(final SolrDataQuery query) {
    Assert.notNull(query, "Query must not be 'null'.");

    return execute(new SolrCallback<Long>() {

        @Override//from  w ww.  j  ava  2 s .  c  om
        public Long doInSolr(SolrClient solrClient) throws SolrServerException, IOException {
            SolrQuery solrQuery = queryParsers.getForClass(query.getClass()).constructSolrQuery(query);
            solrQuery.setStart(0);
            solrQuery.setRows(0);

            return solrClient.query(solrQuery).getResults().getNumFound();
        }
    });
}

From source file:com.gdn.x.ui.controller.CommonController.java

protected List searchByQuery(String queryParameter) throws MalformedURLException, SolrServerException {
    List actualResult = new ArrayList<String>();
    try {/*from w  ww  .ja  v  a 2  s . co  m*/
        //            for solr 5
        HttpSolrClient solr = new HttpSolrClient(solrUrlSearch);
        //for Solr 4
        //            HttpSolrServer solr = new HttpSolrServer("");

        SolrQuery query = new SolrQuery();

        query.setQuery(queryParameter);
        query.setFields("id");
        query.setRequestHandler("/browse");
        query.setStart(0);
        query.setRows(40);
        QueryResponse response = solr.query(query);
        SolrDocumentList results = response.getResults();

        int j = 0;
        for (int i = 0; i < results.size(); ++i, j++) {
            actualResult.add(results.get(i).get("id"));
        }
    } catch (IOException ex) {
        Logger.getLogger(RunGoldenListController.class.getName()).log(Level.SEVERE, null, ex);
    }

    return actualResult;
}

From source file:com.gdn.x.ui.controller.Evaluation.CommonControllerEvaluation.java

protected List searchByQueryEvaluation(String queryParameter)
        throws MalformedURLException, SolrServerException {
    List actualResult = new ArrayList<String>();
    try {//from www  .  j  av  a 2s.  c om
        //            for solr 5
        HttpSolrClient solr = new HttpSolrClient(solrUrlSearch);
        //for Solr 4
        //            HttpSolrServer solr = new HttpSolrServer("http://172.17.132.9:8983/solr/collection3");

        SolrQuery query = new SolrQuery();

        query.setQuery(queryParameter);
        query.setFields("id");
        query.setRequestHandler("/browse");
        query.setStart(0);
        query.setRows(24);
        QueryResponse response = solr.query(query);
        SolrDocumentList results = response.getResults();

        int j = 0;
        for (int i = 0; i < results.size(); ++i, j++) {
            actualResult.add(results.get(i).get("id"));
        }
        //                System.out.println(results.getNumFound());
        //            System.out.println(actualResult);

    } catch (IOException ex) {
        Logger.getLogger(RunGoldenListController.class.getName()).log(Level.SEVERE, null, ex);
    }

    return actualResult;
}

From source file:com.gisgraphy.domain.repository.GenericGisDao.java

License:Open Source License

/**
 * Do a full text search for the given name. The search will be case,
 * iso-latin, comma-separated insensitive<br>
 * search for 'saint-Andr', 'saint-Andre', 'SaInT-andr', 'st-andr', etc
 * will return the same results. <u>note</u> : search for zipcode too
 * Polymorphism is not supported, e.g : if clazz=GisFeature : the results
 * will only be of that type and no other feature type (e.g : City that
 * extends gisFeature...etc) will be returned. The results will be sort by
 * relevance./* w w w .j  a  v  a  2  s  . c om*/
 * 
 * @param name
 *                The name to search for
 * @param includeAlternateNames
 *                Wether we search in the alternatenames too
 * @param clazz
 *                specify the features we want to search for, if null : no
 *                restriction is apply
 * @return a list of gisFeatures of type of the class for the given text.
 *         the max list size is {@link GenericGisDao#MAX_FULLTEXT_RESULTS};
 * @see IGisFeatureDao#listAllFeaturesFromText(String, boolean)
 */
protected List<T> listFromText(String name, boolean includeAlternateNames, Class<T> clazz) {
    logger.debug("getFromText " + name);
    // Set up a simple query
    // Check for a null or empty string query
    if (name == null || name.length() == 0) {
        return new ArrayList<T>();
    }

    SolrQuery query = new SolrQuery();
    String namefield = FullTextFields.ALL_NAME.getValue();
    if (!includeAlternateNames) {
        namefield = FullTextFields.NAME.getValue();
    }
    String queryString = "(" + namefield + ":\"" + name + "\" OR " + FullTextFields.ZIPCODE.getValue() + ":\""
            + name + "\")";
    if (clazz != null) {
        queryString += " AND placetype:" + persistentClass.getSimpleName();
    }
    query.setQuery(queryString);
    query.setQueryType(Constants.SolrQueryType.advanced.toString());
    query.setFields(FullTextFields.FEATUREID.getValue());
    query.setRows(MAX_FULLTEXT_RESULTS);

    QueryResponse results = null;
    try {
        results = solrClient.getServer().query(query);
    } catch (SolrServerException e) {
        throw new RuntimeException(e);
    }

    List<Long> ids = new ArrayList<Long>();
    for (SolrDocument doc : results.getResults()) {
        ids.add((Long) doc.getFieldValue(FullTextFields.FEATUREID.getValue()));
    }
    // log
    List<T> gisFeatureList = this.listByFeatureIds(ids);
    if (logger.isDebugEnabled()) {
        logger.debug("search on " + name + " returns " + gisFeatureList.size());
        for (GisFeature gisFeature : gisFeatureList) {
            logger.debug("search on " + name + " returns " + gisFeature.getName());
        }
    }

    return gisFeatureList;
}

From source file:com.github.fengtan.sophie.tables.DocumentsTable.java

License:Open Source License

/**
 * Get select query and populate the start/rows/fq parameters.
 * /*from w  ww. ja v  a 2s. c o m*/
 * @param start
 *            Offset at which Solr should being returning documents.
 * @param rows
 *            How many rows Solr should return.
 * @return Solr query.
 */
private SolrQuery getBaseQuery(int start, int rows) {
    SolrQuery query = new SolrQuery("*:*");
    query.setStart(start);
    query.setRows(rows);
    // Add filters.
    for (Entry<String, String> filter : filters.entrySet()) {
        if (StringUtils.equals(filter.getValue(), LABEL_EMPTY)) {
            // Empty value needs a special syntax.
            query.addFilterQuery("-" + filter.getKey() + ":[* TO *]");
        } else {
            // Colons in value need to be escaped to avoid a syntax error.
            query.addFilterQuery(filter.getKey() + ":" + filter.getValue().replace(":", "\\:"));
        }
    }
    return query;
}

From source file:com.googlecode.solrgeonames.server.GeoServlet.java

License:Open Source License

/**
 * Prepare a 'suggest' query response/*from w  w w. j a va2  s  .  c o  m*/
 *
 * @param request The incoming request
 * @param response The response object
 * @throws IOException If errors found
 */
private QueryResponse runQuery(String query, int start, int rows, String fields, String filter, String[] facets,
        int facetLimit) throws Exception {
    SolrQuery q = new SolrQuery();
    q.setQuery(query);
    q.setStart(start);
    q.setRows(rows);
    q.setFields(fields);
    if (filter != null) {
        q.setFilterQueries(filter);
    }
    if (facets != null) {
        q.setFacet(true);
        q.setFacetLimit(facetLimit);
        q.addFacetField(facets);
    } else {
        q.setFacet(false);
    }
    return solrServer.query(q);
}

From source file:com.hurence.logisland.service.solr.api.SolrClientService.java

License:Apache License

@Override
public long countCollection(String name) throws DatastoreClientServiceException {
    try {/*w  ww.ja v  a 2  s . c o  m*/
        SolrQuery q = new SolrQuery("*:*");
        q.setRows(0); // don't actually request any data

        return getClient().query(name, q).getResults().getNumFound();
    } catch (Exception e) {
        throw new DatastoreClientServiceException(e);
    }
}

From source file:com.hurence.logisland.service.solr.api.SolrClientService.java

License:Apache License

@Override
public void copyCollection(String reindexScrollTimeout, String src, String dst)
        throws DatastoreClientServiceException {
    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setRows(1000);
    solrQuery.setQuery("*:*");
    solrQuery.addSort("id", SolrQuery.ORDER.asc); // Pay attention to this line
    String cursorMark = CursorMarkParams.CURSOR_MARK_START;
    boolean done = false;
    QueryResponse response;/*from   w  w  w .ja v a 2 s. c  o m*/
    try {
        do {
            solrQuery.set(CursorMarkParams.CURSOR_MARK_PARAM, cursorMark);
            response = getClient().query(src, solrQuery);
            List<SolrInputDocument> documents = new ArrayList<>();
            for (SolrDocument document : response.getResults()) {
                SolrInputDocument inputDocument = getConverter().toSolrInputDocument(document);
                inputDocument.removeField("_version_");
                documents.add(inputDocument);
            }

            getClient().add(dst, documents);

        } while (cursorMark.equals(response.getNextCursorMark()));

        getClient().commit(dst);
    } catch (Exception e) {
        throw new DatastoreClientServiceException(e);
    }
}