List of usage examples for org.apache.solr.client.solrj SolrQuery setStart
public SolrQuery setStart(Integer start)
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; }