@Override public boolean equals(Object obj) { if (obj != null && obj instanceof DiscoverySortFieldConfiguration) { DiscoverySortFieldConfiguration compareConfig = (DiscoverySortFieldConfiguration) obj; if (compareConfig.getMetadataField().equals(getMetadataField()) && compareConfig.getType() .equals(getType())) { return true; } } return false; }
@Override public void setType(String type) throws DiscoveryConfigurationException { if (type.equalsIgnoreCase(DiscoveryConfigurationParameters.TYPE_HIERARCHICAL)) { this.type = type; } else { throw new DiscoveryConfigurationException( "The " + type + " can't be used with a hierarchical facet side bar facet use the " + "\"DiscoverySearchFilterFacet\" class instead."); } } }
public DiscoverySearchFilterFacet getSidebarFacet(final String facetName) { for (DiscoverySearchFilterFacet sidebarFacet : sidebarFacets) { if (StringUtils.equals(sidebarFacet.getIndexFieldName(), facetName)) { return sidebarFacet; } } return null; } }
DiscoveryConfigurationService mainService = dspace.getServiceManager().getServiceByName(DiscoveryConfigurationService.class.getName(), DiscoveryConfigurationService.class); for(String key : mainService.getMap().keySet()){ System.out.println(key); DiscoveryConfiguration discoveryConfiguration = mainService.getMap().get(key); for (int i = 0; i < discoveryConfiguration.getSidebarFacets().size(); i++) { SidebarFacetConfiguration 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); System.out.println("\t\t" + metadataField); List<DiscoverySearchFilter> searchFilters = discoveryConfiguration.getSearchFilters(); for (DiscoverySearchFilter searchFilter : searchFilters) { System.out.println("\t" + searchFilter.getIndexFieldName() + " full: " + searchFilter.isFullAutoComplete()); for (int i = 0; i < searchFilter.getMetadataFields().size(); i++) { String metadataField = searchFilter.getMetadataFields().get(i); System.out.println("\t\t" + metadataField); DiscoveryRecentSubmissionsConfiguration recentSubmissionConfiguration = discoveryConfiguration.getRecentSubmissionConfiguration(); System.out.println("\tMetadata sort field: " + recentSubmissionConfiguration.getMetadataSortField()); System.out.println("\tMax recent submissions: " + recentSubmissionConfiguration.getMax()); List<String> defaultFilterQueries = discoveryConfiguration.getDefaultFilterQueries(); if(0 < defaultFilterQueries.size()){ System.out.println("Default filter queries");
DiscoveryConfigurationService.class); for (String key : mainService.getMap().keySet()) { System.out.println(key); DiscoveryConfiguration discoveryConfiguration = mainService.getMap().get(key); 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); System.out.println("\t\t" + metadataField); List<DiscoverySearchFilter> searchFilters = discoveryConfiguration.getSearchFilters(); for (DiscoverySearchFilter searchFilter : searchFilters) { for (int i = 0; i < searchFilter.getMetadataFields().size(); i++) { String metadataField = searchFilter.getMetadataFields().get(i); System.out.println("\t\t" + metadataField); .getRecentSubmissionConfiguration(); System.out.println("\tMetadata sort field: " + recentSubmissionConfiguration.getMetadataSortField()); System.out.println("\tMax recent submissions: " + recentSubmissionConfiguration.getMax()); List<String> defaultFilterQueries = discoveryConfiguration.getDefaultFilterQueries(); if (0 < defaultFilterQueries.size()) { System.out.println("Default filter queries");
Collection missingSearchFilters = CollectionUtils.subtract(getSidebarFacets(), getSearchFilters()); if (CollectionUtils.isNotEmpty(missingSearchFilters)) { StringBuilder error = new StringBuilder(); for (Object missingSearchFilter : missingSearchFilters) { DiscoverySearchFilter searchFilter = (DiscoverySearchFilter) missingSearchFilter; error.append(searchFilter.getIndexFieldName()).append(" "); throw new DiscoveryConfigurationException(error.toString()); .subtract(getTagCloudFacetConfiguration().getTagCloudFacets(), getSearchFilters()); if (CollectionUtils.isNotEmpty(missingTagCloudSearchFilters)) { StringBuilder error = new StringBuilder(); for (Object missingSearchFilter : missingTagCloudSearchFilters) { DiscoverySearchFilter searchFilter = (DiscoverySearchFilter) missingSearchFilter; error.append(searchFilter.getIndexFieldName()).append(" "); throw new DiscoveryConfigurationException(error.toString());
List<String> defaultFilterQueries = discoveryConfiguration.getDefaultFilterQueries(); queryArgs.addFilterQueries(defaultFilterQueries.toArray(new String[defaultFilterQueries.size()])); queryArgs.setDSpaceObjectFilter(Constants.ITEM); DiscoveryRecentSubmissionsConfiguration recentSubmissionConfiguration = discoveryConfiguration.getRecentSubmissionConfiguration(); if(recentSubmissionConfiguration != null){ queryArgs.setMaxResults(recentSubmissionConfiguration.getMax()); String sortField = SearchUtils.getSearchService().toSortFieldIndex(recentSubmissionConfiguration.getMetadataSortField(), recentSubmissionConfiguration.getType()); if(sortField != null){ queryArgs.setSortField(
public DiscoverySortFieldConfiguration getSortFieldConfiguration(String sortField) { if (StringUtils.isBlank(sortField)) { return null; } if (StringUtils.equalsIgnoreCase(SCORE, sortField)) { DiscoverySortFieldConfiguration configuration = new DiscoverySortFieldConfiguration(); configuration.setMetadataField(SCORE); return configuration; } if (defaultSort != null && StringUtils.equals(defaultSort.getMetadataField(), sortField)) { return defaultSort; } for (DiscoverySortFieldConfiguration sortFieldConfiguration : CollectionUtils.emptyIfNull(sortFields)) { if (StringUtils.equals(sortFieldConfiguration.getMetadataField(), sortField)) { return sortFieldConfiguration; } } return null; } }
public DiscoverySearchFilter getSearchFilter(String name) { for (DiscoverySearchFilter filter : CollectionUtils.emptyIfNull(searchFilters)) { if (StringUtils.equals(name, filter.getIndexFieldName())) { return filter; } } return null; }
public DiscoveryConfiguration getDiscoveryConfigurationByNameOrDso(final String configurationName, final DSpaceObject dso) { if (StringUtils.isNotBlank(configurationName) && getMap().containsKey(configurationName)) { return getMap().get(configurationName); } else { return getDiscoveryConfiguration(dso); } }
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 DiscoveryConfiguration getDiscoveryConfiguration(DSpaceObject dso) { String name; if (dso == null) { name = "site"; } else { name = dso.getHandle(); } return getDiscoveryConfiguration(name); }
public int getYearGap() { int gap = 1; //Attempt to retrieve our gap using the algorithm below int yearDifference = newestYear - oldestYear; if (yearDifference != 0) { gap = round((double) yearDifference / facet.getFacetLimit(), 10); } return gap; }
public static List<String> getIgnoredMetadataFields(int type) { return getConfigurationService().getToIgnoreMetadataFields().get(type); }
@Override public boolean equals(Object obj) { if(obj != null && obj instanceof DiscoverySortFieldConfiguration){ DiscoverySortFieldConfiguration compareConfig = (DiscoverySortFieldConfiguration) obj; if(compareConfig.getMetadataField().equals(getMetadataField()) && compareConfig.getType().equals(getType())){ return true; } } return false; }
public static DiscoveryConfiguration getDiscoveryConfiguration(DSpaceObject dso){ DiscoveryConfigurationService configurationService = getConfigurationService(); DiscoveryConfiguration result = null; if(dso == null){ result = configurationService.getMap().get("site"); }else{ result = configurationService.getMap().get(dso.getHandle()); } if(result == null){ //No specific configuration, get the default one result = configurationService.getMap().get("default"); } return result; }
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); } }
public static DiscoveryConfiguration getDiscoveryConfiguration(DSpaceObject dso) { DiscoveryConfigurationService configurationService = getConfigurationService(); return configurationService.getDiscoveryConfiguration(dso); }
/** * Sets the type of the DiscoverySearchFilter to the one given in the parameter if it matches * a set of possible types * The possible types are described in: {@link org.dspace.discovery.configuration.DiscoveryConfigurationParameters} * For the DiscoverySearchFilter only the TYPE_TEXT, TYPE_DATE and TYPE_HIERARCHICAL are allowed * * @param type The type for this DiscoverySearchFilter * @throws DiscoveryConfigurationException If none of the types match, this error will be thrown indiciating this */ public void setType(String type) throws DiscoveryConfigurationException { if (type.equalsIgnoreCase(DiscoveryConfigurationParameters.TYPE_TEXT)) { this.type = DiscoveryConfigurationParameters.TYPE_TEXT; } else if (type.equalsIgnoreCase(DiscoveryConfigurationParameters.TYPE_DATE)) { this.type = DiscoveryConfigurationParameters.TYPE_DATE; } else if (type.equalsIgnoreCase(DiscoveryConfigurationParameters.TYPE_HIERARCHICAL)) { throw new DiscoveryConfigurationException( "The " + type + " can't be used with a default side bar facet use the " + "\"HierarchicalSidebarFacetConfiguration\" class instead."); } else { this.type = type; } }