String field = facetFieldConfig.getField() + "_ac"; if(DiscoveryConfigurationParameters.SORT.COUNT.equals(facetFieldConfig.getSortOrder())){ urlBuilder.append(FacetParams.FACET_SORT_COUNT); }else{ urlBuilder.append(FacetParams.FACET_SORT_INDEX); urlBuilder.append("&f.").append(field).append("." + FacetParams.FACET_LIMIT).append("=").append(facetFieldConfig.getLimit()); } catch (UnsupportedEncodingException e) {
private String transformFacetField(DiscoverFacetField facetFieldConfig, String field, boolean removePostfix) { if(facetFieldConfig.getType().equals(DiscoveryConfigurationParameters.TYPE_TEXT)){ if(removePostfix){ return field.substring(0, field.lastIndexOf("_filter")); }else{ return field + "_filter"; } }else if(facetFieldConfig.getType().equals(DiscoveryConfigurationParameters.TYPE_DATE)){ if(removePostfix){ return field.substring(0, field.lastIndexOf(".year")); }else{ return field + ".year"; } }else if(facetFieldConfig.getType().equals(DiscoveryConfigurationParameters.TYPE_AC)){ if(removePostfix){ return field.substring(0, field.lastIndexOf("_ac")); }else{ return field + "_ac"; } }else{ return field; } }
String field = transformFacetField(facetFieldConfig, facetFieldConfig.getField(), false); solrQuery.addFacetField(field); solrQuery.add("f." + field + "." + FacetParams.FACET_LIMIT, String.valueOf(facetFieldConfig.getLimit())); String facetSort; if(DiscoveryConfigurationParameters.SORT.COUNT.equals(facetFieldConfig.getSortOrder())){ facetSort = FacetParams.FACET_SORT_COUNT; }else{ if(facetFieldConfig.getPrefix() != null){ solrQuery.setFacetPrefix(field, facetFieldConfig.getPrefix());
List<FacetField.Count> facetValues = facetField.getValues(); if (facetValues != null) { if (facetFieldConfig.getType() .equals(DiscoveryConfigurationParameters.TYPE_DATE) && facetFieldConfig .getSortOrder().equals(DiscoveryConfigurationParameters.SORT.VALUE)) { displayedValue, authorityValue, sortValue, facetValue.getCount(), facetFieldConfig.getType()));
query.addFacetField(new DiscoverFacetField("location.comm", DiscoveryConfigurationParameters.TYPE_STANDARD, -1, DiscoveryConfigurationParameters.SORT.COUNT)); query.addFacetField(new DiscoverFacetField("location.coll", DiscoveryConfigurationParameters.TYPE_STANDARD, -1, DiscoveryConfigurationParameters.SORT.COUNT));
String field = transformFacetField(facetFieldConfig, facetFieldConfig.getField(), false); solrQuery.addFacetField(field); .add("f." + field + "." + FacetParams.FACET_LIMIT, String.valueOf(facetFieldConfig.getLimit())); String facetSort; if (DiscoveryConfigurationParameters.SORT.COUNT.equals(facetFieldConfig.getSortOrder())) { facetSort = FacetParams.FACET_SORT_COUNT; } else { if (facetFieldConfig.getOffset() != -1) { solrQuery.setParam("f." + field + "." + FacetParams.FACET_OFFSET, String.valueOf(facetFieldConfig.getOffset())); if (facetFieldConfig.getPrefix() != null) { solrQuery.setFacetPrefix(field, facetFieldConfig.getPrefix());
List<FacetField.Count> facetValues = facetField.getValues(); if (facetValues != null) { if(facetFieldConfig.getType().equals(DiscoveryConfigurationParameters.TYPE_DATE) && facetFieldConfig.getSortOrder().equals(DiscoveryConfigurationParameters.SORT.VALUE)){
queryArgs.addFacetField(new DiscoverFacetField(facet.getIndexFieldName(), facet.getType(), 10, facet.getSortOrder())); }else{ java.util.List<String> facetQueries = new ArrayList<String>(); queryArgs.addFacetField(new DiscoverFacetField(facet.getIndexFieldName(), DiscoveryConfigurationParameters.TYPE_TEXT, facetLimit, facet.getSortOrder()));
if(request.getParameter(SearchFilterParam.STARTS_WITH) != null) discoverFacetField = new DiscoverFacetField(facetField, DiscoveryConfigurationParameters.TYPE_TEXT, DEFAULT_PAGE_SIZE + 1, DiscoveryConfigurationParameters.SORT.VALUE, request.getParameter(SearchFilterParam.STARTS_WITH).toLowerCase()); }else{ discoverFacetField = new DiscoverFacetField(facetField, DiscoveryConfigurationParameters.TYPE_TEXT, DEFAULT_PAGE_SIZE + 1, DiscoveryConfigurationParameters.SORT.VALUE);
protected String transformFacetField(DiscoverFacetField facetFieldConfig, String field, boolean removePostfix) { if (facetFieldConfig.getType().equals(DiscoveryConfigurationParameters.TYPE_TEXT)) { if (removePostfix) { return field.substring(0, field.lastIndexOf("_filter")); return field + "_filter"; } else if (facetFieldConfig.getType().equals(DiscoveryConfigurationParameters.TYPE_DATE)) { if (removePostfix) { return field.substring(0, field.lastIndexOf(".year")); return field + ".year"; } else if (facetFieldConfig.getType().equals(DiscoveryConfigurationParameters.TYPE_AC)) { if (removePostfix) { return field.substring(0, field.lastIndexOf("_ac")); } else if (facetFieldConfig.getType().equals(DiscoveryConfigurationParameters.TYPE_HIERARCHICAL)) { if (removePostfix) { return StringUtils.substringBeforeLast(field, "_tax_"); } else if (facetFieldConfig.getType().equals(DiscoveryConfigurationParameters.TYPE_AUTHORITY)) { if (removePostfix) { return field.substring(0, field.lastIndexOf("_acid")); } else if (facetFieldConfig.getType().equals(DiscoveryConfigurationParameters.TYPE_STANDARD)) { return field; } else {
DiscoverFacetField dff; if (StringUtils.isNotBlank(startsWith)) { dff = new DiscoverFacetField(facetField, DiscoveryConfigurationParameters.TYPE_TEXT, -1, DiscoveryConfigurationParameters.SORT.VALUE, startsWith); } else { dff = new DiscoverFacetField(facetField, DiscoveryConfigurationParameters.TYPE_TEXT, -1, DiscoveryConfigurationParameters.SORT.VALUE);
queryArgs.addFacetField(new DiscoverFacetField(facetField, DiscoveryConfigurationParameters.TYPE_AC, facetLimit, facetSort));
public void addYearRangeFacet(DiscoverySearchFilterFacet facet, FacetYearRange facetYearRange) { if (facetYearRange.isValid()) { int newestYear = facetYearRange.getNewestYear(); int oldestYear = facetYearRange.getOldestYear(); String dateFacet = facetYearRange.getDateFacet(); int gap = facetYearRange.getYearGap(); // We need to determine our top year so we can start our count from a clean year // Example: 2001 and a gap from 10 we need the following result: 2010 - 2000 ; 2000 - 1990 hence the top // year int topYear = getTopYear(newestYear, gap); if (gap == 1) { //We need a list of our years //We have a date range add faceting for our field //The faceting will automatically be limited to the 10 years in our span due to our filterquery this.addFacetField(new DiscoverFacetField(facet.getIndexFieldName(), facet.getType(), 10, facet.getSortOrderSidebar())); } else { List<String> facetQueries = buildFacetQueriesWithGap(newestYear, oldestYear, dateFacet, gap, topYear, facet.getFacetLimit()); for (String facetQuery : CollectionUtils.emptyIfNull(facetQueries)) { this.addFacetQuery(facetQuery); } } } }