List of usage examples for org.apache.solr.client.solrj SolrQuery setRows
public SolrQuery setRows(Integer rows)
From source file:org.codelibs.fess.service.SearchService.java
License:Apache License
public List<Map<String, Object>> getDocumentList(final String query, final int start, final int rows, final FacetInfo facetInfo, final GeoInfo geoInfo, final MoreLikeThisInfo mltInfo, final String[] responseFields, final String[] docValuesFields, final boolean forUser) { if (start > queryHelper.getMaxSearchResultOffset()) { throw new ResultOffsetExceededException("The number of result size is exceeded."); }/*from w w w . j av a 2 s .c o m*/ final long startTime = System.currentTimeMillis(); final SolrGroup solrGroup = solrGroupManager.getSolrGroup(QueryType.QUERY); QueryResponse queryResponse = null; final SolrQuery solrQuery = new SolrQuery(); final SearchQuery searchQuery = queryHelper.build(query, forUser); final String q = searchQuery.getQuery(); if (StringUtil.isNotBlank(q)) { // fields solrQuery.setFields(responseFields); // query solrQuery.setQuery(q); solrQuery.setStart(start); solrQuery.setRows(rows); solrQuery.set("mm", searchQuery.getMinimumShouldMatch()); solrQuery.set("defType", searchQuery.getDefType()); for (final Map.Entry<String, String[]> entry : queryHelper.getQueryParamMap().entrySet()) { solrQuery.set(entry.getKey(), entry.getValue()); } // filter query if (searchQuery.hasFilterQueries()) { solrQuery.addFilterQuery(searchQuery.getFilterQueries()); } // sort final SortField[] sortFields = searchQuery.getSortFields(); if (sortFields.length != 0) { for (final SortField sortField : sortFields) { solrQuery.addSort(sortField.getField(), Constants.DESC.equals(sortField.getOrder()) ? SolrQuery.ORDER.desc : SolrQuery.ORDER.asc); } } else if (queryHelper.hasDefaultSortFields()) { for (final SortField sortField : queryHelper.getDefaultSortFields()) { solrQuery.addSort(sortField.getField(), Constants.DESC.equals(sortField.getOrder()) ? SolrQuery.ORDER.desc : SolrQuery.ORDER.asc); } } // highlighting if (queryHelper.getHighlightingFields() != null && queryHelper.getHighlightingFields().length != 0) { for (final String hf : queryHelper.getHighlightingFields()) { solrQuery.addHighlightField(hf); } solrQuery.setHighlightSnippets(queryHelper.getHighlightSnippetSize()); } // shards if (queryHelper.getShards() != null) { solrQuery.setParam("shards", queryHelper.getShards()); } // geo if (geoInfo != null && geoInfo.isAvailable()) { solrQuery.addFilterQuery(geoInfo.toGeoQueryString()); final String additionalGeoQuery = queryHelper.getAdditionalGeoQuery(); if (StringUtil.isNotBlank(additionalGeoQuery)) { solrQuery.addFilterQuery(additionalGeoQuery); } } // facets if (facetInfo != null) { solrQuery.setFacet(true); if (facetInfo.field != null) { for (final String f : facetInfo.field) { if (queryHelper.isFacetField(f)) { solrQuery.addFacetField(f); } else { throw new FessSolrQueryException("EFESS0002", new Object[] { f }); } } } if (facetInfo.query != null) { for (final String fq : facetInfo.query) { final String facetQuery = queryHelper.buildFacetQuery(fq); if (StringUtil.isNotBlank(facetQuery)) { solrQuery.addFacetQuery(facetQuery); } else { throw new FessSolrQueryException("EFESS0003", new Object[] { fq, facetQuery }); } } } if (facetInfo.limit != null) { solrQuery.setFacetLimit(Integer.parseInt(facetInfo.limit)); } if (facetInfo.minCount != null) { solrQuery.setFacetMinCount(Integer.parseInt(facetInfo.minCount)); } if (facetInfo.missing != null) { solrQuery.setFacetMissing(Boolean.parseBoolean(facetInfo.missing)); } if (facetInfo.prefix != null) { solrQuery.setFacetPrefix(facetInfo.prefix); } if (facetInfo.sort != null && queryHelper.isFacetSortValue(facetInfo.sort)) { solrQuery.setFacetSort(facetInfo.sort); } } // mlt if (mltInfo != null) { final String mltField = queryHelper.getMoreLikeThisField(mltInfo.field); if (mltField != null) { solrQuery.set("mlt", true); if (mltInfo.count != null) { solrQuery.set("mlt.count", Integer.parseInt(mltInfo.count)); } solrQuery.set("mlt.fl", mltField); } } if (queryHelper.getTimeAllowed() >= 0) { solrQuery.setTimeAllowed(queryHelper.getTimeAllowed()); } final Set<Entry<String, String[]>> paramSet = queryHelper.getRequestParameterSet(); if (!paramSet.isEmpty()) { for (final Map.Entry<String, String[]> entry : paramSet) { solrQuery.set(entry.getKey(), entry.getValue()); } } if (docValuesFields != null) { for (final String docValuesField : docValuesFields) { solrQuery.add(Constants.DCF, docValuesField); } } queryResponse = solrGroup.query(solrQuery, SolrRequest.METHOD.POST); } final long execTime = System.currentTimeMillis() - startTime; final QueryResponseList queryResponseList = ComponentUtil.getQueryResponseList(); queryResponseList.init(queryResponse, rows); queryResponseList.setSearchQuery(q); queryResponseList.setSolrQuery(solrQuery.toString()); queryResponseList.setExecTime(execTime); return queryResponseList; }
From source file:org.craftercms.commerce.client.itest.ProductServiceTest.java
License:Open Source License
@Test public void testSave() throws Exception { String id = "product-2003"; Date now = new Date(); String creator = "Spiderman"; String modifier = "The Hulk"; long numFound; SolrQuery solrQuery = new SolrQuery(BaseType.SOLR_ID_FIELD + ":" + id); solrQuery.setRows(1); numFound = solrServer.query(solrQuery).getResults().getNumFound(); Assert.assertEquals(0, numFound);/*from ww w. ja va 2s. c o m*/ Product product = new Product(); product.setId(id); product.setCreationDate(now); product.setCreatedBy(creator); product.setLastModifiedBy(modifier); ServiceResponse<Product> response = productService().save(product); Assert.assertEquals(true, response.isSuccess()); SolrDocumentList solrDocList = solrServer.query(solrQuery).getResults(); Assert.assertEquals(1, solrDocList.getNumFound()); Assert.assertEquals(1, solrDocList.size()); SolrDocument solrDoc = solrDocList.get(0); Assert.assertEquals(id, solrDoc.getFieldValue(BaseType.SOLR_ID_FIELD)); Assert.assertEquals(now, solrDoc.getFieldValue(BaseType.SOLR_CREATION_DATE_FIELD)); Assert.assertEquals(creator, solrDoc.getFieldValue(BaseType.SOLR_CREATED_BY_ID_FIELD)); Assert.assertEquals(modifier, solrDoc.getFieldValue(BaseType.SOLR_LAST_MODIFIED_BY_ID_FIELD)); }
From source file:org.craftercms.commerce.client.itest.ProductServiceTest.java
License:Open Source License
@Test public void testSaveAll() throws Exception { String id1 = "product-2003"; String id2 = "product-2004"; Date now = new Date(); String creator = "Spiderman"; String modifier = "The Hulk"; long numFound; SolrQuery solrQuery = new SolrQuery( BaseType.SOLR_ID_FIELD + ":" + id1 + " OR " + BaseType.SOLR_ID_FIELD + ":" + id2); solrQuery.setRows(2); numFound = solrServer.query(solrQuery).getResults().getNumFound(); Assert.assertEquals(0, numFound);//from w w w .j a v a2s. co m Product p1 = new Product(); p1.setId(id1); p1.setCreationDate(now); p1.setCreatedBy(creator); p1.setLastModifiedBy(modifier); Product p2 = new Product(); p2.setId(id2); p2.setCreationDate(now); p2.setCreatedBy(creator); p2.setLastModifiedBy(modifier); Product[] newProducts = { p1, p2 }; ServiceResponse<Product> response = productService().saveAll(newProducts); Assert.assertEquals(true, response.isSuccess()); numFound = solrServer.query(solrQuery).getResults().getNumFound(); Assert.assertEquals(2, numFound); }
From source file:org.craftercms.commerce.client.itest.ProductServiceTest.java
License:Open Source License
@Test public void testDelete() throws Exception { String randomProductId = "product-" + solrTestDataService.randomIndex(); SolrQuery solrQuery = new SolrQuery(BaseType.SOLR_ID_FIELD + ":" + randomProductId); solrQuery.setRows(1); long numFound = solrServer.query(solrQuery).getResults().getNumFound(); Assert.assertEquals(1, numFound);//from w w w . j a v a2 s . c o m Product product = new Product(); product.setId(randomProductId); ServiceResponse<Product> response = productService().delete(product); Assert.assertEquals(true, response.isSuccess()); numFound = solrServer.query(solrQuery).getResults().getNumFound(); Assert.assertEquals(0, numFound); }
From source file:org.craftercms.commerce.client.itest.ProductServiceTest.java
License:Open Source License
@Test public void testDeleteAll() throws Exception { SolrQuery solrQuery = new SolrQuery(BaseType.SOLR_TYPE_FIELD + ":" + Product.class.getName()); solrQuery.setRows(0); long numFound = solrServer.query(solrQuery).getResults().getNumFound(); Assert.assertEquals(SolrTestDataService.TEST_DOCUMENT_COUNT, numFound); ServiceResponse<Product> response = productService().deleteAll(); Assert.assertEquals(true, response.isSuccess()); numFound = solrServer.query(solrQuery).getResults().getNumFound(); Assert.assertEquals(0, numFound);/*from w ww . j a v a 2s . c o m*/ }
From source file:org.craftercms.commerce.server.solr.AbstractSolrCRUDService.java
License:Open Source License
public ServiceResponse<T> findByQuery(@PathVariable String query, @PathVariable int offset, @PathVariable int maxResults) throws CrafterCommerceException { if (LOGGER.isDebugEnabled()) { LOGGER.debug("About to find entities for query: " + query); }// ww w .ja va 2 s. co m try { String solrQueryStr = queryConverter.toSolrQuery(query); SolrQuery solrQuery = new SolrQuery(solrQueryStr); solrQuery.setStart(offset); solrQuery.setRows(maxResults); QueryResponse qResponse = solrServer.query(solrQuery); Set<T> entities = toEntities(qResponse); ServiceResponse<T> sResponse = new ServiceResponse<T>(); sResponse.setReturnedClass(getTypeArgument()); sResponse.setSuccess(true); sResponse.setEntities(entities); sResponse.setCount(qResponse.getResults().getNumFound()); String message = ReturnMessageProvider.findByQueryMessage(getTypeArgument(), query, entities.size()); sResponse.setMessage(message); return sResponse; } catch (Exception e) { LOGGER.error("Failed to find entities by query for query = " + query, e); return new ServiceResponse<T>(getTypeArgument(), false, e.getMessage()); } }
From source file:org.craftercms.commerce.server.solr.AbstractSolrCRUDService.java
License:Open Source License
public ServiceResponse<T> findByQuery(String query, int offset, int maxResults, String... facet) throws CrafterCommerceException { try {// w w w. j ava 2 s. c o m String solrQueryStr = queryConverter.toSolrQuery(query); SolrQuery solrQuery = new SolrQuery(solrQueryStr); solrQuery.setStart(offset); solrQuery.setRows(maxResults); // construct facet parameters if (facet.length > 0) { solrQuery.setFacet(true); solrQuery.setFacetMinCount(2); // only get the facet if there are 2 or more values for (String _facet : facet) { solrQuery.addFacetField(_facet); } } // execute Solr query QueryResponse response = solrServer.query(solrQuery); Set<T> entities = toEntities(response); Set<Facet> facets = toFacets(response); // create the service response ServiceResponse<T> serviceResponse = new ServiceResponse<T>(); serviceResponse.setSuccess(true); serviceResponse.setEntities(entities); serviceResponse.setCount(response.getResults().getNumFound()); serviceResponse.setFacets(facets); String msg = ReturnMessageProvider.findByQueryMessage(getTypeArgument(), query, entities.size()); serviceResponse.setMessage(msg); // return the response return serviceResponse; } catch (Exception e) { LOGGER.error("Failed to find entities by query for query = " + query, e); return new ServiceResponse<T>(getTypeArgument(), false, e.getMessage()); } }
From source file:org.craftercms.commerce.server.solr.AbstractSolrCRUDService.java
License:Open Source License
public ServiceResponse<T> findAll() throws CrafterCommerceException { try {//from ww w . ja v a2s .co m String solrQueryStr = BaseType.SOLR_TYPE_FIELD + ":" + getTypeArgument().getName(); SolrQuery solrQuery = new SolrQuery(solrQueryStr); solrQuery.setRows((int) count().getCount()); SolrDocumentList solrDocList = solrServer.query(solrQuery).getResults(); Set<T> entities = new LinkedHashSet<T>(solrDocList.size()); for (SolrDocument _solrDoc : solrDocList) { entities.add(documentObjectBinder.getBean(getTypeArgument(), _solrDoc)); } ServiceResponse<T> sResponse = new ServiceResponse<T>(); sResponse.setSuccess(true); sResponse.setReturnedClass(getTypeArgument()); sResponse.setEntities(entities); sResponse.setMessage(ReturnMessageProvider.findAllMessage(getTypeArgument(), entities)); return sResponse; } catch (Exception e) { LOGGER.error("Failed to find all entities", e); return new ServiceResponse<T>(getTypeArgument(), false, e.getMessage()); } }
From source file:org.craftercms.commerce.server.solr.AbstractSolrCRUDService.java
License:Open Source License
public ServiceResponse<T> count() throws CrafterCommerceException { try {// ww w . j a v a2 s .c om String solrQueryStr = BaseType.SOLR_TYPE_FIELD + ":" + getTypeArgument().getName(); SolrQuery solrQuery = new SolrQuery(solrQueryStr); solrQuery.setRows(0); long numfound = solrServer.query(solrQuery).getResults().getNumFound(); ServiceResponse<T> sResponse = new ServiceResponse<T>(); sResponse.setSuccess(true); sResponse.setReturnedClass(getTypeArgument()); sResponse.setCount(numfound); sResponse.setMessage(ReturnMessageProvider.countMessage(getTypeArgument(), numfound)); return sResponse; } catch (Exception e) { LOGGER.error("Failed to count all entities", e); return new ServiceResponse<T>(getTypeArgument(), false, e.getMessage()); } }
From source file:org.craftercms.commerce.server.solr.AbstractSolrCRUDService.java
License:Open Source License
public ServiceResponse<T> exists(@PathVariable String id) throws CrafterCommerceException { try {//ww w.j a v a 2 s . c o m SolrQuery solrQuery = new SolrQuery(BaseType.SOLR_ID_FIELD + ":" + id); solrQuery.setRows(0); long numfound = solrServer.query(solrQuery).getResults().getNumFound(); boolean exists = (numfound != 0) ? true : false; return new ServiceResponse<T>(getTypeArgument(), true, exists, ReturnMessageProvider.existsMessage(getTypeArgument(), id, exists)); } catch (Exception e) { LOGGER.error("Failed check if entity exists for id = " + id, e); return new ServiceResponse<T>(getTypeArgument(), false, e.getMessage()); } }