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

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

Introduction

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

Prototype

public SolrQuery addFacetField(String... fields) 

Source Link

Document

Add field(s) for facet computation.

Usage

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());
}