public DiscoverySearchFilterFacet getSidebarFacet(final String facetName) { for (DiscoverySearchFilterFacet sidebarFacet : sidebarFacets) { if (StringUtils.equals(sidebarFacet.getIndexFieldName(), facetName)) { return sidebarFacet; } } return null; } }
public List<FacetResult> getFacetResult(DiscoverySearchFilterFacet field) { List<DiscoverResult.FacetResult> facetValues = getFacetResult(field.getIndexFieldName()); //Check if we are dealing with a date, sometimes the facet values arrive as dates ! if (facetValues.size() == 0 && field.getType().equals(DiscoveryConfigurationParameters.TYPE_DATE)) { facetValues = getFacetResult(field.getIndexFieldName() + ".year"); } return ListUtils.emptyIfNull(facetValues); }
public void calculateRange(Context context, List<String> filterQueries, DSpaceObject scope, SearchService searchService) throws SearchServiceException { dateFacet = facet.getIndexFieldName() + ".year"; //Get a range query so we can create facet queries ranging from our first to our last date //Attempt to determine our oldest & newest year by checking for previously selected filters lookupPreviousRangeInFilterQueries(filterQueries); //Check if we have found a range, if not then retrieve our first & last year using Solr if (oldestYear == -1 && newestYear == -1) { calculateNewRangeBasedOnSearchIndex(context, filterQueries, scope, searchService); } }
for (int i = 0; i < discoveryConfiguration.getSidebarFacets().size(); i++) { DiscoverySearchFilterFacet sidebarFacet = discoveryConfiguration.getSidebarFacets().get(i); System.out.println("\t" + sidebarFacet.getIndexFieldName()); for (int j = 0; j < sidebarFacet.getMetadataFields().size(); j++) { String metadataField = sidebarFacet.getMetadataFields().get(j);
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); } } } }