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

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

Introduction

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

Prototype

public SolrQuery setStart(Integer start) 

Source Link

Usage

From source file:com.nridge.ds.solr.SolrDS.java

License:Open Source License

/**
 * Calculates a count (using a wildcard criteria) of all the
 * rows stored in the content source and returns that value.
 *
 * @return Count of all rows in the content source.
 * @throws DSException Data source related exception.
 *///from   w ww .j  a  va 2 s.  c om
@Override
public int count() throws DSException {
    int documentCount;
    Logger appLogger = mAppMgr.getLogger(this, "count");

    appLogger.trace(mAppMgr.LOGMSG_TRACE_ENTER);

    initialize();

    DSCriteria dsCriteria = new DSCriteria("Solr Query");
    dsCriteria.add(Solr.FIELD_QUERY_NAME, Field.Operator.EQUAL, Solr.QUERY_ALL_DOCUMENTS);

    SolrQuery solrQuery = mSolrQueryBuilder.create(dsCriteria);
    solrQuery.setStart(0);
    solrQuery.setRows(1);

    appLogger.debug(String.format("%s: %s %s", dsCriteria.getName(), mSolrIdentity, solrQuery.toString()));

    QueryResponse queryResponse = queryExecute(solrQuery);
    SolrDocumentList solrDocumentList = queryResponse.getResults();
    documentCount = (int) solrDocumentList.getNumFound();

    appLogger.trace(mAppMgr.LOGMSG_TRACE_DEPART);

    return documentCount;
}

From source file:com.nridge.ds.solr.SolrDS.java

License:Open Source License

/**
 * Returns a count of rows that match the <i>DSCriteria</i> specified
 * in the parameter.//w w  w  . j a v a  2s  .co  m
 *
 * @param aDSCriteria Data source criteria.
 *
 * @return Count of rows matching the data source criteria.
 *
 * @throws com.nridge.core.base.ds.DSException Data source related exception.
 */
@Override
public int count(DSCriteria aDSCriteria) throws DSException {
    int documentCount;
    Logger appLogger = mAppMgr.getLogger(this, "count");

    appLogger.trace(mAppMgr.LOGMSG_TRACE_ENTER);

    initialize();

    SolrQuery solrQuery = mSolrQueryBuilder.create(aDSCriteria);
    solrQuery.setStart(0);
    solrQuery.setRows(1);

    appLogger.debug(String.format("%s: %s %s", aDSCriteria.getName(), mSolrIdentity, solrQuery.toString()));

    QueryResponse queryResponse = queryExecute(solrQuery);
    SolrDocumentList solrDocumentList = queryResponse.getResults();
    documentCount = (int) solrDocumentList.getNumFound();

    appLogger.trace(mAppMgr.LOGMSG_TRACE_DEPART);

    return documentCount;
}

From source file:com.nridge.ds.solr.SolrDS.java

License:Open Source License

/**
 * Returns a <i>Document</i> representation of all documents
 * fetched from the underlying content source (using a wildcard
 * criteria)./* w ww  .ja va 2s .com*/
 * <p>
 * <b>Note:</b> Depending on the size of the content source
 * behind this data source, this method could consume large
 * amounts of heap memory.  Therefore, it should only be
 * used when the number of column and rows is known to be
 * small in size.
 * </p>
 *
 * @return Document hierarchy representing all documents in
 * the content source.
 *
 * @throws com.nridge.core.base.ds.DSException Data source related exception.
 */
@Override
public Document fetch() throws DSException {
    Document solrDocument;
    Logger appLogger = mAppMgr.getLogger(this, "fetch");

    appLogger.trace(mAppMgr.LOGMSG_TRACE_ENTER);

    initialize();

    DSCriteria dsCriteria = new DSCriteria("Solr Query");
    dsCriteria.add(Solr.FIELD_QUERY_NAME, Field.Operator.EQUAL, Solr.QUERY_ALL_DOCUMENTS);

    SolrQuery solrQuery = mSolrQueryBuilder.create(dsCriteria);
    solrQuery.setStart(Solr.QUERY_OFFSET_DEFAULT);
    solrQuery.setRows(Solr.QUERY_PAGESIZE_DEFAULT);

    appLogger.debug(String.format("%s: %s %s", dsCriteria.getName(), mSolrIdentity, solrQuery.toString()));

    SolrResponseBuilder solrResponseBuilder = createResponseBuilder();
    QueryResponse queryResponse = queryExecute(solrQuery);
    solrDocument = solrResponseBuilder.extract(queryResponse);
    DataBag headerBag = Solr.getHeader(solrDocument);
    if (headerBag != null)
        headerBag.setValueByName("collection_name", getCollectionName());
    String requestHandler = solrQuery.getRequestHandler();
    solrResponseBuilder.updateHeader(mBaseSolrURL, solrQuery.getQuery(), requestHandler, solrQuery.getStart(),
            solrQuery.getRows());

    appLogger.trace(mAppMgr.LOGMSG_TRACE_DEPART);

    return solrDocument;
}

From source file:com.nridge.ds.solr.SolrDS.java

License:Open Source License

/**
 * Returns a <i>Document</i> representation of the documents
 * that match the <i>DSCriteria</i> specified in the parameter.
 * In addition, this method offers a paging mechanism where the
 * starting offset and a fetch limit can be applied to each
 * content fetch query./*from ww w .ja va2s .  co  m*/
 *
 * @param aDSCriteria Data source criteria.
 * @param anOffset    Starting offset into the matching content rows.
 * @param aLimit      Limit on the total number of rows to extract from
 *                    the content source during this fetch operation.
 *
 * @return Document hierarchy representing all documents that
 * match the criteria in the content source. (based on the offset
 * and limit values).
 *
 * @throws com.nridge.core.base.ds.DSException Data source related exception.
 *
 *  @see <a href="http://lucene.apache.org/solr/guide/7_6/common-query-parameters.html">Solr Common Query Parametersr</a>
 *    @see <a href="https://lucene.apache.org/solr/guide/7_6/the-standard-query-parser.html">Solr Standard Query Parserr</a>
 */
@Override
public Document fetch(DSCriteria aDSCriteria, int anOffset, int aLimit) throws DSException {
    Document solrDocument;
    Logger appLogger = mAppMgr.getLogger(this, "fetch");

    appLogger.trace(mAppMgr.LOGMSG_TRACE_ENTER);

    initialize();

    SolrQuery solrQuery = mSolrQueryBuilder.create(aDSCriteria);
    solrQuery.setStart(anOffset);
    solrQuery.setRows(aLimit);

    appLogger.debug(String.format("%s: %s %s", aDSCriteria.getName(), mSolrIdentity, solrQuery.toString()));

    SolrResponseBuilder solrResponseBuilder = createResponseBuilder();
    QueryResponse queryResponse = queryExecute(solrQuery);
    solrDocument = solrResponseBuilder.extract(queryResponse, anOffset, aLimit);
    DataBag headerBag = Solr.getHeader(solrDocument);
    if (headerBag != null)
        headerBag.setValueByName("collection_name", getCollectionName());
    String requestHandler = solrQuery.getRequestHandler();
    solrResponseBuilder.updateHeader(mBaseSolrURL, solrQuery.getQuery(), requestHandler, anOffset, aLimit);
    if (Solr.isCriteriaParentChild(aDSCriteria)) {
        SolrParentChild solrParentChild = new SolrParentChild(mAppMgr, this);
        solrParentChild.expand(solrDocument, aDSCriteria);
    }

    appLogger.trace(mAppMgr.LOGMSG_TRACE_DEPART);

    return solrDocument;
}

From source file:com.pearson.openideas.cq5.components.services.solr.SolrHelper.java

License:Open Source License

/**
 * Build a SolrQuery object based on the parameters.
 * /* w  w w. j a  v a 2s  . com*/
 * @param parameters
 *            the search parameters
 * @return the SolrQuery object
 */
public static SolrQuery buildQuery(final SolrSearchParameters parameters) {
    log.debug("Building SolrQuery.");
    log.info("Build the base query.");

    String q = "*:*";

    if (parameters.getQuery() != null) {
        q = parameters.getQuery();
    }
    SolrQuery query = new SolrQuery(q);

    if (parameters.getType() != null) {
        log.debug("set query query type to {}", parameters.getType());
        query.setQueryType(parameters.getType());
    }

    if (parameters.getDisplayCount() > 0) {
        log.debug("set query display count to {}", parameters.getDisplayCount());
        query.setRows(parameters.getDisplayCount());
    }

    if (parameters.getCurrentRecord() > 0) {
        log.debug("set query start to {}", parameters.getCurrentRecord());
        query.setStart(parameters.getCurrentRecord());
    }
    log.info("Done building the base query.");

    log.info("Adding facet to query.");
    addFacet(parameters.getFacetField(), query);
    log.info("Done adding facet to query.");

    log.info("Adding search criteria to query.");
    addSearchCriteria(parameters.getSearchCriteria(), query);
    log.info("Done adding search criteria to query.");

    log.info("Adding filter criteria to query.");
    addFilterCriteria(parameters.getFilterCriteria(), query);
    log.info("Done adding filter criteria to query.");

    log.info("Adding sort fields to query.");
    addSortFields(parameters.getSortFields(), query);
    log.info("Done adding sort fields to query.");

    log.debug("done building SolrQuery, returning.");
    return query;
}

From source file:com.plugtree.solrmeter.model.service.impl.QueryServiceSolrJImpl.java

License:Apache License

protected SolrQuery createQuery(String q, String fq, String qt, boolean highlight, String facetFields,
        String sort, String sortOrder, Integer rows, Integer start, String otherParams) throws QueryException {
    SolrQuery query = new SolrQuery();
    if (q != null) {
        query.setQuery(q);// w w  w .ja v a2 s.  co m
    }
    if (fq != null) {
        List<String> filterQueries = this.getFilterQueries(fq);
        for (String filterQuery : filterQueries) {
            query.addFilterQuery(filterQuery);
        }
    }
    if (qt != null) {
        query.setQueryType(qt);
    }
    query.setHighlight(highlight);
    if (facetFields == null || "".equals(facetFields)) {
        query.setFacet(false);
    } else {
        query.setFacet(true);
        List<String> facets = this.getFacets(facetFields);
        for (String facet : facets) {
            query.addFacetField(facet);
        }
    }
    if (sort != null && !"".equals(sort)) {
        query.setSortField(sort, ORDER.valueOf(sortOrder));
    }
    if (rows != null && rows < 0) {
        throw new QueryException("Rows can't be less than 0");
    } else if (rows != null) {
        query.setRows(rows);
    }
    if (start != null && start < 0) {
        throw new QueryException("Rows can't be less than 0");
    } else if (start != null) {
        query.setStart(start);
    }

    if (otherParams != null) {
        List<String> params = this.getOtherParams(otherParams);
        for (String param : params) {
            query.add(getParamName(param), getParamValue(param));
        }
    }
    return query;
}

From source file:com.smartitengineering.common.dao.search.solr.SolrFreeTextSearchDao.java

License:Open Source License

@Override
public SearchResult<T> detailedSearch(List<QueryParameter> parameters) {
    SolrQuery query = new SolrQuery();
    for (QueryParameter param : parameters) {
        switch (param.getParameterType()) {
        case PARAMETER_TYPE_PROPERTY:
            StringLikeQueryParameter queryParameter = QueryParameterCastHelper.STRING_PARAM_HELPER.cast(param);
            if (queryParameter.getPropertyName().equals("q")) {
                String queryString = queryParameter.getValue();
                query.setQuery(queryString);
            } else {
                query.add(queryParameter.getPropertyName(), queryParameter.getValue());
            }// ww w  .j av a  2  s.  c  o m
            break;
        case PARAMETER_TYPE_ORDER_BY:
            SimpleNameValueQueryParameter<Order> parameter = QueryParameterCastHelper.SIMPLE_PARAM_HELPER
                    .cast(param);
            ORDER order = parameter.getValue().equals(Order.ASC) ? ORDER.asc : ORDER.desc;
            query.setSortField(parameter.getPropertyName(), order);
            break;
        case PARAMETER_TYPE_MAX_RESULT:
            ValueOnlyQueryParameter<Integer> valParam = QueryParameterCastHelper.VALUE_PARAM_HELPER.cast(param);
            Integer maxRows = valParam.getValue();
            query.setRows(maxRows);
            break;
        case PARAMETER_TYPE_FIRST_RESULT:
            ValueOnlyQueryParameter<Integer> firstParam = QueryParameterCastHelper.VALUE_PARAM_HELPER
                    .cast(param);
            Integer firstResult = firstParam.getValue();
            query.setStart(firstResult);
            break;
        default:
            throw new UnsupportedOperationException("Only property and order by query parameter is supported!");
        }
    }
    query.setIncludeScore(true);
    final SearchResult<MultivalueMap<String, Object>> mainResult = queryDao.getResult(query);
    final Collection<MultivalueMap<String, Object>> result = mainResult.getResult();
    final Collection<T> convertedResult = adapter
            .convertInversely(result.toArray(new MultivalueMap[result.size()]));
    Iterator<T> resultItr = convertedResult.iterator();
    while (resultItr.hasNext()) {
        T next = resultItr.next();
        if (next == null) {
            resultItr.remove();
        }
    }
    final SearchResult<T> actualResult = new SearchResult<T>(convertedResult, mainResult);
    return actualResult;
}

From source file:com.ssavr.solr.service.impl.IceCreamLocalServiceImpl.java

License:Open Source License

/***************************************************************************
 ************************** GET ********************************************
 ***************************************************************************/

public IceCreamBean getIceCreamBean(IceCream iceCream) throws Exception {
    String uid = "iceCream_" + iceCream.getUuid();
    IceCreamBean bean = new IceCreamBean();
    bean.setUid(uid);/*from  w  ww.  j  av a  2  s  . c o  m*/
    bean.setCompanyId(iceCream.getCompanyId());
    bean.setIceCreamId(iceCream.getIceCreamId());
    bean.setName(iceCream.getName());
    bean.setFlavor(iceCream.getFlavor());
    List<IceCreamDocuments> documents = iceCreamDocumentsLocalService
            .getIceCreamDocumentsByIceCreamId(iceCream.getIceCreamId());
    List<String> documentsContent = new ArrayList<String>();

    if (!documents.isEmpty()) {
        List<String> documentIds = new ArrayList<String>();
        for (IceCreamDocuments document : documents) {
            documentIds.add(String.valueOf(document.getDocumentId()));
        }
        String documentsStr = StringUtil.merge(documentIds, StringPool.SPACE);

        SolrQuery query = new SolrQuery();
        query.setQuery(Field.ENTRY_CLASS_PK + ":(" + documentsStr + ")");
        query.addFilterQuery(
                Field.ENTRY_CLASS_NAME + ":(com.liferay.portlet.documentlibrary.model.DLFileEntry)");
        query.setStart(0);
        query.setRows(10000000);

        String activeServerUrl = SolrUtil.getActiveSolrServer();
        CommonsHttpSolrServer server = new CommonsHttpSolrServer(activeServerUrl);

        QueryResponse qr = server.query(query);
        SolrDocumentList docs = qr.getResults();
        if (_log.isDebugEnabled()) {
            _log.debug("Found " + docs.size() + " Document(-s)");
        }

        for (int i = 0; i < docs.size(); ++i) {
            String docContent = (String) docs.get(i).getFieldValue("content");
            documentsContent.add(docContent);
        }
    }

    bean.setIceCreamRecipeContent(documentsContent);

    if (_log.isDebugEnabled()) {
        _log.debug(bean.toString());
    }

    return bean;
}

From source file:com.ssavr.solr.service.impl.IceCreamLocalServiceImpl.java

License:Open Source License

public List<IceCream> searchIceCreams(String name, String flavor, String text, int start, int rows,
        String orderByCol, String orderByType) throws PortalException, SystemException {
    if (_log.isDebugEnabled()) {
        _log.debug("searchIceCreams()");
    }//from  www  . java2 s  . c  om
    List<IceCream> iceCreams = new ArrayList<IceCream>();
    String activeServerURL = SolrUtil.getActiveSolrServer();
    try {
        CommonsHttpSolrServer server = new CommonsHttpSolrServer(activeServerURL);
        SolrQuery query = new SolrQuery();

        query.setQuery(getQuery());
        List<String> filterQueries = getFilterQueries(name, flavor, text);
        for (String fq : filterQueries) {
            query.setFilterQueries(fq);
        }

        query.setStart(start);
        query.setRows(rows);

        QueryResponse response = server.query(query);

        List<SolrResponse> searchResults = response.getBeans(SolrResponse.class);
        for (SolrResponse result : searchResults) {
            String iceCreamId = result.getEntryClassPK();
            IceCream iceCream = iceCreamPersistence.findByPrimaryKey(Long.parseLong(iceCreamId));
            iceCreams.add(iceCream);
        }
    } catch (MalformedURLException e) {
        if (_log.isDebugEnabled()) {
            _log.debug(e.getMessage());
        }
        throw new SystemException(e);
    } catch (SolrServerException e) {
        if (_log.isDebugEnabled()) {
            _log.debug(e.getMessage());
        }
        throw new SystemException(e);
    }

    return iceCreams;
}

From source file:com.ssavr.solr.service.impl.IceCreamLocalServiceImpl.java

License:Open Source License

public List<IceCream> searchIceCreamsWithEDisMax(String name, String flavor, String text, String value,
        int start, int rows, String orderByCol, String orderByType) throws PortalException, SystemException {
    if (_log.isDebugEnabled()) {
        _log.debug("searchIceCreams()");
    }/*from w  w  w. j av  a 2 s . c om*/
    List<IceCream> iceCreams = new ArrayList<IceCream>();
    String activeServerURL = SolrUtil.getActiveSolrServer();
    try {
        CommonsHttpSolrServer server = new CommonsHttpSolrServer(activeServerURL);
        SolrQuery query = new SolrQuery();

        query.setQuery(getQuery(value));
        query.set("qf", "iceCreamName iceCreamFlavor");
        /*
         * List<String> filterQueries = getFilterQueries(name, flavor,
         * text); for (String fq : filterQueries) {
         * query.setFilterQueries(fq); }
         */

        query.setStart(start);
        query.setRows(rows);

        boolean enableFacet = true;
        query.setFacet(enableFacet);
        query.addFacetField("iceCreamName", "iceCreamFlavor");

        QueryResponse response = server.query(query);

        List<SolrResponse> searchResults = response.getBeans(SolrResponse.class);

        for (SolrResponse result : searchResults) {
            String iceCreamId = result.getEntryClassPK();
            IceCream iceCream = iceCreamPersistence.findByPrimaryKey(Long.parseLong(iceCreamId));
            iceCreams.add(iceCream);
        }
    } catch (MalformedURLException e) {
        if (_log.isDebugEnabled()) {
            _log.debug(e.getMessage());
        }
        throw new SystemException(e);
    } catch (SolrServerException e) {
        if (_log.isDebugEnabled()) {
            _log.debug(e.getMessage());
        }
        throw new SystemException(e);
    }

    return iceCreams;
}