List of usage examples for org.apache.solr.client.solrj SolrQuery addFacetField
public SolrQuery addFacetField(String... fields)
From source file:org.geotools.data.solr.SolrDataStore.java
License:Open Source License
@Override protected List<Name> createTypeNames() throws IOException { try {//from w w w . j a v a 2 s . c o m if (typeNames == null || typeNames.isEmpty()) { typeNames = new ArrayList<Name>(); SolrQuery query = new SolrQuery(); query.setQuery("*:*"); query.addFacetField(field); query.setFacet(true); query.setFacetMinCount(1); query.setFacetSort(FacetParams.FACET_SORT_INDEX); query.setRows(0); query.setParam("omitHeader", true); QueryResponse rsp = solrServer.query(query); if (LOGGER.isLoggable(Level.FINE)) { LOGGER.log(Level.FINE, "SOLR query done: " + query.toString()); } List<Count> uniqueFacetFields = rsp.getFacetFields().get(0).getValues(); for (Count field : uniqueFacetFields) { typeNames.add(new NameImpl(namespaceURI, field.getName())); } } } catch (Exception ex) { LOGGER.log(Level.SEVERE, ex.getMessage(), ex); } return typeNames; }
From source file:org.hbird.business.archive.solr.SolrProducer.java
License:Apache License
private List<EntityInstance> doInitializationRequest(DataRequest body, String request) { SolrQuery query = new SolrQuery(request); query.setRows(1);// ww w . j a va2s . c o m query.setSortField(endpoint.getSortField(), endpoint.getSortOrder()); /** Configure facets. */ query.setFacet(true); query.setQuery(request); query.setFacetSort(StandardArguments.COUNT); query.setFacetLimit(-1); query.setFacetMissing(false); query.setFacetMinCount(1); query.addFacetField(StandardArguments.NAME); query.setQueryType("basic"); List<EntityInstance> results = new ArrayList<EntityInstance>(); QueryResponse response; try { response = endpoint.getServer().query(query); if (response.getStatus() != 0) { LOG.error("Failed to execute retrieval request. Failed with status '{}'.", response.getStatus()); } if (response.getFacetFields() != null) { /** For each facet, retrieve 'rows' samples. */ for (FacetField facetfield : response.getFacetFields()) { if (facetfield.getValues() != null) { LOG.info("Found " + facetfield.getValueCount() + " entries for facet value " + facetfield.getName()); for (Count count : facetfield.getValues()) { String applicableTo = ""; if (body.hasArgumentValue(StandardArguments.APPLICABLE_TO)) { applicableTo = body.getArgumentValue(StandardArguments.APPLICABLE_TO, String.class); } SolrQuery sampleQuery = new SolrQuery("name:\"" + count.getName() + "\"" + createTimestampElement(body.getFrom(), body.getTo()) + createIsApplicableToElement(applicableTo)); LOG.info("Using sample query '" + sampleQuery + "' to get facet " + count.getName()); sampleQuery.setRows(body.getRows()); sampleQuery.setSortField(StandardArguments.TIMESTAMP, ORDER.desc); sampleQuery.setQueryType("basic"); for (EntityInstance newObj : retrieve(sampleQuery)) { results.add(newObj); LOG.info("Added object '" + newObj.getID() + "'"); } } } } } } catch (Exception e) { LOG.error("Failed to handle initialization request; query: '{}'.", request, e); } return results; }
From source file:org.hoteia.qalingo.core.solr.service.CatalogCategorySolrService.java
License:Apache License
public CatalogCategoryResponseBean searchCatalogCategory(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!"); }/* w w w. j a v a 2 s . c o m*/ 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(catalogCategorySolrServer.request(request), catalogCategorySolrServer); logger.debug("QueryResponse Obj: " + response.toString()); List<CatalogCategorySolr> solrList = response.getBeans(CatalogCategorySolr.class); CatalogCategoryResponseBean catalogCategoryResponseBean = new CatalogCategoryResponseBean(); catalogCategoryResponseBean.setCatalogCategorySolrList(solrList); if (StringUtils.isNotEmpty(facetField)) { List<FacetField> solrFacetFieldList = response.getFacetFields(); catalogCategoryResponseBean.setCatalogCategorySolrFacetFieldList(solrFacetFieldList); } return catalogCategoryResponseBean; }
From source file:org.hoteia.qalingo.core.solr.service.CatalogCategorySolrService.java
License:Apache License
public CatalogCategoryResponseBean searchCatalogCategory() throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setParam("rows", ROWS_DEFAULT_VALUE); solrQuery.setQuery("*"); solrQuery.setFacet(true);// www. j av a 2 s.com solrQuery.setFacetMinCount(1); solrQuery.setFacetLimit(8); solrQuery.addFacetField("code"); logger.debug("QueryRequest solrQuery: " + solrQuery); SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); QueryResponse response = new QueryResponse(catalogCategorySolrServer.request(request), catalogCategorySolrServer); logger.debug("QueryResponse Obj: " + response.toString()); List<CatalogCategorySolr> solrList = response.getBeans(CatalogCategorySolr.class); List<FacetField> solrFacetFieldList = response.getFacetFields(); CatalogCategoryResponseBean catalogCategoryResponseBean = new CatalogCategoryResponseBean(); catalogCategoryResponseBean.setCatalogCategorySolrList(solrList); catalogCategoryResponseBean.setCatalogCategorySolrFacetFieldList(solrFacetFieldList); return catalogCategoryResponseBean; }
From source file:org.hoteia.qalingo.core.solr.service.CompanySolrService.java
License:Apache License
public CompanyResponseBean searchCompany(final String searchQuery, final List<String> facetFields, final List<String> cities, final List<String> countries, final SolrParam solrParam) throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); if (solrParam != null) { if (solrParam.get("rows") != null) { solrQuery.setParam("rows", (String) solrParam.get("rows")); } else {// ww w .j a v a 2s . c om 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.size() > 0) { solrQuery.setFacet(true); solrQuery.setFacetMinCount(1); 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(companySolrServer.request(request), companySolrServer); logger.debug("QueryResponse Obj: " + response.toString()); List<CompanySolr> solrList = response.getBeans(CompanySolr.class); CompanyResponseBean companyResponseBean = new CompanyResponseBean(); companyResponseBean.setCompanySolrList(solrList); if (facetFields != null && facetFields.size() > 0) { List<FacetField> solrFacetFieldList = response.getFacetFields(); companyResponseBean.setCompanySolrFacetFieldList(solrFacetFieldList); } return companyResponseBean; }
From source file:org.hoteia.qalingo.core.solr.service.CompanySolrService.java
License:Apache License
@Deprecated public CompanyResponseBean searchCompany(String searchBy, String searchText, List<String> facetFields, List<String> cities, List<String> countries) throws 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!"); }//from ww w . jav a2 s. 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); 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(companySolrServer.request(request), companySolrServer); logger.debug("QueryResponse Obj: " + response.toString()); List<CompanySolr> solrList = response.getBeans(CompanySolr.class); CompanyResponseBean companyResponseBean = new CompanyResponseBean(); companyResponseBean.setCompanySolrList(solrList); if (facetFields != null && facetFields.size() > 0) { List<FacetField> solrFacetFieldList = response.getFacetFields(); companyResponseBean.setCompanySolrFacetFieldList(solrFacetFieldList); } return companyResponseBean; }
From source file:org.hoteia.qalingo.core.solr.service.CompanySolrService.java
License:Apache License
@Deprecated public CompanyResponseBean searchCompany() throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setParam("rows", getMaxResult()); solrQuery.setQuery("*"); solrQuery.setFacet(true);//from w w w. j a va 2 s . c o m solrQuery.setFacetMinCount(1); solrQuery.addFacetField("name"); logger.debug("QueryRequest solrQuery: " + solrQuery); SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); QueryResponse response = new QueryResponse(companySolrServer.request(request), companySolrServer); logger.debug("QueryResponse Obj: " + response.toString()); List<CompanySolr> solrList = response.getBeans(CompanySolr.class); List<FacetField> solrFacetFieldList = response.getFacetFields(); CompanyResponseBean companyResponseBean = new CompanyResponseBean(); companyResponseBean.setCompanySolrList(solrList); companyResponseBean.setCompanySolrFacetFieldList(solrFacetFieldList); return companyResponseBean; }
From source file:org.hoteia.qalingo.core.solr.service.CustomerSolrService.java
License:Apache License
public CustomerResponseBean searchCustomer(String searchBy, String searchText, String facetField) throws IllegalArgumentException, 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 www .j a va 2s . com*/ 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(customerSolrServer.request(request), customerSolrServer); logger.debug("QueryResponse Obj: " + response.toString()); List<CustomerSolr> solrList = response.getBeans(CustomerSolr.class); CustomerResponseBean customerResponseBean = new CustomerResponseBean(); customerResponseBean.setCustomerSolrList(solrList); if (StringUtils.isNotEmpty(facetField)) { List<FacetField> solrFacetFieldList = response.getFacetFields(); customerResponseBean.setCustomerSolrFacetFieldList(solrFacetFieldList); } return customerResponseBean; }
From source file:org.hoteia.qalingo.core.solr.service.CustomerSolrService.java
License:Apache License
public CustomerResponseBean searchCustomer() throws IllegalArgumentException, SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setParam("rows", ROWS_DEFAULT_VALUE); solrQuery.setQuery("*"); solrQuery.setFacet(true);/*from w ww. j a v a2 s .co m*/ solrQuery.setFacetMinCount(1); solrQuery.setFacetLimit(8); solrQuery.addFacetField("lastname"); logger.debug("QueryRequest solrQuery: " + solrQuery); SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); QueryResponse response = new QueryResponse(customerSolrServer.request(request), customerSolrServer); logger.debug("QueryResponse Obj: " + response.toString()); List<CustomerSolr> solrList = response.getBeans(CustomerSolr.class); List<FacetField> solrFacetFieldList = response.getFacetFields(); CustomerResponseBean customerResponseBean = new CustomerResponseBean(); customerResponseBean.setCustomerSolrList(solrList); customerResponseBean.setCustomerSolrFacetFieldList(solrFacetFieldList); return customerResponseBean; }
From source file:org.hoteia.qalingo.core.solr.service.impl.CatalogCategorySolrServiceImpl.java
License:Apache License
public CatalogCategoryResponseBean searchCatalogCategory(String searchBy, String searchText, String facetField) throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); if (StringUtils.isEmpty(searchBy)) { throw new IllegalArgumentException("searcBy field can not be Empty or Blank "); }/*from w w w .j av a2s. c o m*/ 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); } SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); QueryResponse response = new QueryResponse(catalogCategorySolrServer.request(request), catalogCategorySolrServer); logger.debug("QueryResponse Obj: " + response); List<CatalogCategorySolr> categorySolrList = response.getBeans(CatalogCategorySolr.class); logger.debug(" categorySolrList: " + categorySolrList); CatalogCategoryResponseBean catalogCategoryResponseBean = new CatalogCategoryResponseBean(); catalogCategoryResponseBean.setCatalogCategorySolrList(categorySolrList); logger.debug("categorySolrList add sucessflly in productResponseBeen "); if (StringUtils.isNotEmpty(facetField)) { List<FacetField> categorySolrFacetFieldList = response.getFacetFields(); logger.debug("ProductFacetFileList: " + categorySolrFacetFieldList); catalogCategoryResponseBean.setCatalogCategorySolrFacetFieldList(categorySolrFacetFieldList); logger.debug(" categoryFacetFileList Add sucessflly in categoryResponseBeen "); } return catalogCategoryResponseBean; }