/** * Setup the basic query arguments: the main query and all the filters (default + user). Return * the list of user filter * * @param context * @param request * @param queryArgs the query object to populate * @return the list of user filer (as filter query) */ private static List<String> setupBasicQuery( Context context, DiscoveryConfiguration discoveryConfiguration, HttpServletRequest request, DiscoverQuery queryArgs) { // Get the query String query = request.getParameter("query"); if (StringUtils.isNotBlank(query)) { queryArgs.setQuery(query); } List<String> defaultFilterQueries = discoveryConfiguration.getDefaultFilterQueries(); if (defaultFilterQueries != null) { for (String f : defaultFilterQueries) { queryArgs.addFacetQuery(f); } } List<String[]> filters = getFilters(request); List<String> userFilters = new ArrayList<String>(); for (String[] f : filters) { try { String newFilterQuery = SearchUtils.getSearchService() .toFilterQuery(context, f[0], f[1], f[2]) .getFilterQuery(); if (newFilterQuery != null) { queryArgs.addFilterQueries(newFilterQuery); userFilters.add(newFilterQuery); } } catch (SQLException e) { log.error( LogManager.getHeader( context, "Error in discovery while setting up user facet query", "filter_field: " + f[0] + ",filter_type:" + f[1] + ",filer_value:" + f[2]), e); } } return userFilters; }