List of usage examples for org.apache.solr.client.solrj SolrQuery addFacetField
public SolrQuery addFacetField(String... fields)
From source file:org.hoteia.qalingo.core.solr.service.ProductMarketingSolrService.java
License:Apache License
public ProductMarketingResponseBean searchProductMarketing() throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setParam("rows", ROWS_DEFAULT_VALUE); solrQuery.setQuery("*"); solrQuery.setFacet(true);/* w w w . ja v a2 s. com*/ solrQuery.setFacetMinCount(1); solrQuery.setFacetLimit(8); solrQuery.addFacetField(ProductMarketingResponseBean.PRODUCT_MARKETING_SEARCH_FIELD_CATEGORIES_CODE); logger.debug("QueryRequest solrQuery: " + solrQuery); SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); QueryResponse response = new QueryResponse(productMarketingSolrServer.request(request), productMarketingSolrServer); logger.debug("QueryResponse Obj: " + response.toString()); List<ProductMarketingSolr> solrList = response.getBeans(ProductMarketingSolr.class); List<FacetField> solrFacetFieldList = response.getFacetFields(); ProductMarketingResponseBean productMarketingResponseBean = new ProductMarketingResponseBean(); productMarketingResponseBean.setProductMarketingSolrList(solrList); productMarketingResponseBean.setProductMarketingSolrFacetFieldList(solrFacetFieldList); return productMarketingResponseBean; }
From source file:org.hoteia.qalingo.core.solr.service.ProductSkuSolrService.java
License:Apache License
public ProductSkuResponseBean searchProductSku(String searchBy, String searchText, String facetField) throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setParam("rows", ROWS_DEFAULT_VALUE); if (StringUtils.isEmpty(searchBy)) { throw new IllegalArgumentException("SearchBy field can not be Empty or Blank!"); }/*from w w w . j a v a2 s.c om*/ if (StringUtils.isEmpty(searchText)) { solrQuery.setQuery(searchBy + ":*"); } else { solrQuery.setQuery(searchBy + ":" + searchText + "*"); } if (StringUtils.isNotEmpty(facetField)) { solrQuery.setFacet(true); solrQuery.setFacetMinCount(1); solrQuery.setFacetLimit(8); solrQuery.addFacetField(facetField); } logger.debug("QueryRequest solrQuery: " + solrQuery); SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); QueryResponse response = new QueryResponse(productSkuSolrServer.request(request), productSkuSolrServer); logger.debug("QueryResponse Obj: " + response.toString()); List<ProductSkuSolr> solrList = response.getBeans(ProductSkuSolr.class); ProductSkuResponseBean productResponseBean = new ProductSkuResponseBean(); productResponseBean.setProductSkuSolrList(solrList); if (StringUtils.isNotEmpty(facetField)) { List<FacetField> solrFacetFieldList = response.getFacetFields(); productResponseBean.setProductSkuSolrFacetFieldList(solrFacetFieldList); } return productResponseBean; }
From source file:org.hoteia.qalingo.core.solr.service.ProductSkuSolrService.java
License:Apache License
public ProductSkuResponseBean searchProductSku() throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setParam("rows", ROWS_DEFAULT_VALUE); solrQuery.setQuery("*"); solrQuery.setFacet(true);/*from ww w . j a va 2 s . c o m*/ solrQuery.setFacetMinCount(1); solrQuery.setFacetLimit(8); solrQuery.addFacetField("name"); solrQuery.addFacetField("code"); logger.debug("QueryRequest solrQuery: " + solrQuery); SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); QueryResponse response = new QueryResponse(productSkuSolrServer.request(request), productSkuSolrServer); logger.debug("QueryResponse Obj: " + response.toString()); List<ProductSkuSolr> solrList = response.getBeans(ProductSkuSolr.class); List<FacetField> solrFacetFieldList = response.getFacetFields(); ProductSkuResponseBean productSkuResponseBean = new ProductSkuResponseBean(); productSkuResponseBean.setProductSkuSolrList(solrList); productSkuResponseBean.setProductSkuSolrFacetFieldList(solrFacetFieldList); return productSkuResponseBean; }
From source file:org.hoteia.qalingo.core.solr.service.StoreSolrService.java
License:Apache License
public StoreResponseBean searchStore(String searchBy, String searchText, List<String> facetFields, List<String> cities, List<String> countries) throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setParam("rows", ROWS_DEFAULT_VALUE); if (StringUtils.isEmpty(searchBy)) { throw new IllegalArgumentException("SearchBy field can not be Empty or Blank!"); }//from w ww . j av a 2s . c o m if (StringUtils.isEmpty(searchText)) { solrQuery.setQuery(searchBy + ":*"); } else { solrQuery.setQuery(searchBy + ":" + searchText + "*"); } if (facetFields != null && facetFields.size() > 0) { solrQuery.setFacet(true); solrQuery.setFacetMinCount(1); solrQuery.setFacetLimit(30); for (String facetField : facetFields) { solrQuery.addFacetField(facetField); } } if (cities != null && cities.size() > 0) { StringBuilder fq = new StringBuilder("city:("); for (int i = 0; i < cities.size(); i++) { String city = cities.get(i); fq.append('"' + city + '"'); if (i < cities.size() - 1) { fq.append(" OR "); } } fq.append(")"); solrQuery.addFilterQuery(fq.toString()); } if (countries != null && countries.size() > 0) { StringBuilder fq = new StringBuilder("countrycode:("); for (int i = 0; i < countries.size(); i++) { String country = countries.get(i); fq.append('"' + country + '"'); if (i < countries.size() - 1) { fq.append(" OR "); } } fq.append(")"); solrQuery.addFilterQuery(fq.toString()); } logger.debug("QueryRequest solrQuery: " + solrQuery); SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); QueryResponse response = new QueryResponse(storeSolrServer.request(request), storeSolrServer); logger.debug("QueryResponse Obj: " + response.toString()); List<StoreSolr> solrList = response.getBeans(StoreSolr.class); StoreResponseBean storeResponseBean = new StoreResponseBean(); storeResponseBean.setStoreSolrList(solrList); if (facetFields != null && facetFields.size() > 0) { List<FacetField> solrFacetFieldList = response.getFacetFields(); storeResponseBean.setStoreSolrFacetFieldList(solrFacetFieldList); } return storeResponseBean; }
From source file:org.hoteia.qalingo.core.solr.service.StoreSolrService.java
License:Apache License
public StoreResponseBean searchStore() throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setParam("rows", ROWS_DEFAULT_VALUE); solrQuery.setQuery("*"); solrQuery.setFacet(true);/*from w w w . j a v a 2s . c o m*/ solrQuery.setFacetMinCount(1); solrQuery.setFacetLimit(8); solrQuery.addFacetField("name"); logger.debug("QueryRequest solrQuery: " + solrQuery); SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); QueryResponse response = new QueryResponse(storeSolrServer.request(request), storeSolrServer); logger.debug("QueryResponse Obj: " + response.toString()); List<StoreSolr> solrList = response.getBeans(StoreSolr.class); List<FacetField> solrFacetFieldList = response.getFacetFields(); StoreResponseBean storeResponseBean = new StoreResponseBean(); storeResponseBean.setStoreSolrList(solrList); storeResponseBean.setStoreSolrFacetFieldList(solrFacetFieldList); return storeResponseBean; }
From source file:org.hoteia.qalingo.core.solr.service.UserSolrService.java
License:Apache License
public UserResponseBean searchUser(final String searchQuery, final List<String> facetFields, final List<String> filterQueries, final SolrParam solrParam) throws IllegalArgumentException, SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); if (solrParam != null) { if (solrParam.get("rows") != null) { solrQuery.setParam("rows", (String) solrParam.get("rows")); } else {// w w w . j a v a 2s .com solrQuery.setParam("rows", getMaxResult()); } if (solrParam.get("sortField") != null) { SortField sortField = (SortField) solrParam.get("sortField"); for (Iterator<String> iterator = sortField.keySet().iterator(); iterator.hasNext();) { String field = (String) iterator.next(); solrQuery.addSortField(field, sortField.get(field)); } } } if (StringUtils.isEmpty(searchQuery)) { throw new IllegalArgumentException("SearchQuery field can not be Empty or Blank!"); } solrQuery.setQuery(searchQuery); if (facetFields != null && !facetFields.isEmpty()) { solrQuery.setFacet(true); solrQuery.setFacetMinCount(1); for (String facetField : facetFields) { solrQuery.addFacetField(facetField); } } logger.debug("QueryRequest solrQuery: " + solrQuery); SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); QueryResponse response = new QueryResponse(userSolrServer.request(request), userSolrServer); logger.debug("QueryResponse Obj: " + response.toString()); List<UserSolr> solrList = response.getBeans(UserSolr.class); UserResponseBean userResponseBean = new UserResponseBean(); userResponseBean.setUserSolrList(solrList); if (facetFields != null && !facetFields.isEmpty()) { List<FacetField> solrFacetFieldList = response.getFacetFields(); userResponseBean.setUserSolrFacetFieldList(solrFacetFieldList); } return userResponseBean; }
From source file:org.hoteia.qalingo.core.solr.service.UserSolrService.java
License:Apache License
@Deprecated public UserResponseBean searchUser(String searchBy, String searchText, List<String> facetFields) throws IllegalArgumentException, SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setParam("rows", getMaxResult()); if (StringUtils.isEmpty(searchBy)) { throw new IllegalArgumentException("SearchBy field can not be Empty or Blank!"); }/* ww w .ja v a2s .c om*/ if (StringUtils.isEmpty(searchText)) { solrQuery.setQuery(searchBy + ":*"); } else { solrQuery.setQuery(searchBy + ":" + searchText + "*"); } if (facetFields != null && !facetFields.isEmpty()) { solrQuery.setFacet(true); solrQuery.setFacetMinCount(1); for (String facetField : facetFields) { solrQuery.addFacetField(facetField); } } logger.debug("QueryRequest solrQuery: " + solrQuery); SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); QueryResponse response = new QueryResponse(userSolrServer.request(request), userSolrServer); logger.debug("QueryResponse Obj: " + response.toString()); List<UserSolr> solrList = response.getBeans(UserSolr.class); UserResponseBean userResponseBean = new UserResponseBean(); userResponseBean.setUserSolrList(solrList); if (facetFields != null && !facetFields.isEmpty()) { List<FacetField> solrFacetFieldList = response.getFacetFields(); userResponseBean.setUserSolrFacetFieldList(solrFacetFieldList); } return userResponseBean; }
From source file:org.hoteia.qalingo.core.solr.service.UserSolrService.java
License:Apache License
public UserResponseBean searchUser() throws IllegalArgumentException, SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setParam("rows", getMaxResult()); solrQuery.setQuery("*"); solrQuery.setFacet(true);//from w w w . ja v a 2s . c o m solrQuery.setFacetMinCount(1); solrQuery.addFacetField("lastname"); logger.debug("QueryRequest solrQuery: " + solrQuery); SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); QueryResponse response = new QueryResponse(userSolrServer.request(request), userSolrServer); logger.debug("QueryResponse Obj: " + response.toString()); List<UserSolr> solrList = response.getBeans(UserSolr.class); List<FacetField> solrFacetFieldList = response.getFacetFields(); UserResponseBean userResponseBean = new UserResponseBean(); userResponseBean.setUserSolrList(solrList); userResponseBean.setUserSolrFacetFieldList(solrFacetFieldList); return userResponseBean; }
From source file:org.intermine.api.searchengine.solr.SolrKeywordSearchHandler.java
License:GNU General Public License
private QueryResponse performSearch(InterMineAPI im, String queryString, Map<String, String> facetValues, List<Integer> ids, int offSet, int rowSize) { SolrClient solrClient = SolrClientManager.getClientInstance(im.getObjectStore()); QueryResponse resp = null;/* w ww .j ava2 s . c om*/ KeywordSearchPropertiesManager keywordSearchPropertiesManager = KeywordSearchPropertiesManager .getInstance(im.getObjectStore()); Vector<KeywordSearchFacetData> facets = keywordSearchPropertiesManager.getFacets(); Map<ClassDescriptor, Float> classBoost = keywordSearchPropertiesManager.getClassBoost(); List<String> fieldNames = getFieldNamesFromSolrSchema(solrClient); try { SolrQuery newQuery = new SolrQuery(); newQuery.setQuery(queryString); newQuery.setStart(offSet); newQuery.setRows(rowSize); newQuery.addField("score"); newQuery.addField("id"); newQuery.add("defType", "edismax"); for (KeywordSearchFacetData keywordSearchFacetData : facets) { newQuery.addFacetField("facet_" + keywordSearchFacetData.getField()); } // add faceting selections for (Map.Entry<String, String> facetValue : facetValues.entrySet()) { if (facetValue != null) { newQuery.addFilterQuery(facetValue.getKey() + ":" + facetValue.getValue()); } } //limiting the query based on search bag if (ids != null && !ids.isEmpty()) { for (int id : ids) { newQuery.addFilterQuery("id", Integer.toString(id)); } } String boostQuery = ""; for (Map.Entry<ClassDescriptor, Float> boostValue : classBoost.entrySet()) { if (boostValue != null) { boostQuery += "classname:" + boostValue.getKey().getUnqualifiedName() + "^" + boostValue.getValue() + " "; } } LOG.info("BoostQuery : " + boostQuery); String fieldListQuery = ""; for (String field : fieldNames) { fieldListQuery = fieldListQuery + field; if (field.endsWith("_raw")) { fieldListQuery = fieldListQuery + "^2.0"; } fieldListQuery = fieldListQuery + " "; } LOG.info("Field List Query : " + fieldListQuery); newQuery.add("bq", boostQuery); newQuery.add("qf", fieldListQuery); resp = solrClient.query(newQuery, SolrRequest.METHOD.POST); return resp; } catch (SolrServerException e) { LOG.error("Query performed on solr failed for search term : " + queryString, e); e.printStackTrace(); } catch (IOException e) { LOG.error("Query performed on solr failed for search term : " + queryString, e); e.printStackTrace(); } return resp; }
From source file:org.kuali.ole.docstore.engine.service.rest.DocstoreRestClient_UT.java
License:Open Source License
public void searchBibWithFacets(String facetSort) throws Exception { String[] facets = { "Author_facet", "Format_facet", "Genre_facet", "Language_facet", "PublicationDate_facet", "PublicationDate_sort" }; String[] fieldList = { "LocalId_display", "Title_sort", "Title_display", "JournalTitle_display", "Author_display", "Publisher_display", "ISBN_display", "ISSN_display", "Subject_display", "Publisher_display", "PublicationDate_display", "Edition_display", "Format_display", "Language_display", "Description_display", "FormGenre_display", "DocFormat", "staffOnlyFlag", "bibIdentifier", "holdingsIdentifier" }; String args = "(DocType:bibliographic)AND((*:*))"; SolrServer solr = SolrServerManager.getInstance().getSolrServer(); SolrQuery query = new SolrQuery(); query.setQuery(args);//from ww w .j a v a 2 s .c o m query.setFacet(true); query.addFacetField(facets); query.setFacetMinCount(1); query.setFacetSort(facetSort); query.setFacetLimit(5); query.setFields(fieldList); query.set("facet.offset", "0"); QueryResponse response = solr.query(query); System.out.println("Search result count " + response.getResults().getNumFound() + " and time taken to search is " + response.getQTime()); }