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

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

Introduction

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

Prototype

public SolrQuery addFacetQuery(String f) 

Source Link

Document

add a faceting query

Usage

From source file:org.sparkcommerce.core.search.service.solr.SolrSearchServiceImpl.java

License:Apache License

/**
 * Notifies solr about which facets you want it to determine results and counts for
 * //  w  w  w  . j  av a2s. c  om
 * @param query
 * @param namedFacetMap
 */
protected void attachFacets(SolrQuery query, Map<String, SearchFacetDTO> namedFacetMap) {
    query.setFacet(true);
    for (Entry<String, SearchFacetDTO> entry : namedFacetMap.entrySet()) {
        SearchFacetDTO dto = entry.getValue();
        String facetTagField = entry.getValue().isActive() ? shs.getGlobalFacetTagField() : entry.getKey();

        // Clone the list - we don't want to remove these facets from the DB
        List<SearchFacetRange> facetRanges = new ArrayList<SearchFacetRange>(
                dto.getFacet().getSearchFacetRanges());

        if (extensionManager != null) {
            extensionManager.getProxy().filterSearchFacetRanges(dto, facetRanges);
        }

        if (facetRanges != null && facetRanges.size() > 0) {
            for (SearchFacetRange range : facetRanges) {
                query.addFacetQuery(getSolrTaggedFieldString(entry.getKey(), facetTagField, "ex", range));
            }
        } else {
            query.addFacetField(getSolrTaggedFieldString(entry.getKey(), facetTagField, "ex", null));
        }
    }
}

From source file:sk.opendatanode.utils.SolrQueryHelper.java

License:Open Source License

/**
 * adds facet query with relevant excluding tag
 * for example: facet.query:{!ex=def}type:ORGANIZATION_RECORD
 * //from  www  . j a  v  a 2 s.  c  om
 * @param type
 * @param solrQuery
 */
private static void addFacetItemQuery(FacetItemType type, SolrQuery solrQuery) {
    FacetInfo facetInfo = FacetFactory.getFacetInfo(type, null);

    if (facetInfo == null)
        return;

    for (FacetItem facetItem : facetInfo.getItemList()) {
        String exTag = DEF_EX_TAG.replace("type", facetItem.getQueryFieldName());
        solrQuery.addFacetQuery(exTag + facetItem.getQuery());
    }
}