private void calculateNewRangeBasedOnSearchIndex(Context context, List<String> filterQueries, DSpaceObject scope, SearchService searchService) throws SearchServiceException { DiscoverQuery yearRangeQuery = new DiscoverQuery(); yearRangeQuery.setMaxResults(1); //Set our query to anything that has this value yearRangeQuery.addFieldPresentQueries(dateFacet); //Set sorting so our last value will appear on top yearRangeQuery.setSortField(dateFacet + "_sort", DiscoverQuery.SORT_ORDER.asc); yearRangeQuery.addFilterQueries(filterQueries.toArray(new String[filterQueries.size()])); yearRangeQuery.addSearchField(dateFacet); DiscoverResult lastYearResult = searchService.search(context, scope, yearRangeQuery); if (0 < lastYearResult.getDspaceObjects().size()) { List<DiscoverResult.SearchDocument> searchDocuments = lastYearResult .getSearchDocument(lastYearResult.getDspaceObjects().get(0)); if (0 < searchDocuments.size() && 0 < searchDocuments.get(0).getSearchFieldValues(dateFacet).size()) { oldestYear = Integer.parseInt(searchDocuments.get(0).getSearchFieldValues(dateFacet).get(0)); } } //Now get the first year yearRangeQuery.setSortField(dateFacet + "_sort", DiscoverQuery.SORT_ORDER.desc); DiscoverResult firstYearResult = searchService.search(context, scope, yearRangeQuery); if (0 < firstYearResult.getDspaceObjects().size()) { List<DiscoverResult.SearchDocument> searchDocuments = firstYearResult .getSearchDocument(firstYearResult.getDspaceObjects().get(0)); if (0 < searchDocuments.size() && 0 < searchDocuments.get(0).getSearchFieldValues(dateFacet).size()) { newestYear = Integer.parseInt(searchDocuments.get(0).getSearchFieldValues(dateFacet).get(0)); } } }
.getServiceByName(SearchService.class.getName(), SearchService.class) .createLocationQueryForAdministrableItems(context));
allFilterQueries.add(searchService.toFilterQuery(context, (type.equals("*") ? "" : type), value).getFilterQuery()); allFilterQueries.add(searchService.toFilterQuery(context, fq).getFilterQuery());
if(recentSubmissionConfiguration != null){ queryArgs.setMaxResults(recentSubmissionConfiguration.getMax()); String sortField = SearchUtils.getSearchService().toSortFieldIndex(recentSubmissionConfiguration.getMetadataSortField(), recentSubmissionConfiguration.getType()); if(sortField != null){ queryArgs.setSortField( queryResults = service.search(context, dso, queryArgs); }else{
JSONStream = getSearchService().searchJSON(queryArgs, getScope(context, objectModel), jsonWrf); } catch (Exception e) { log.error("Error while retrieving JSON string for Discovery auto complete", e);
if(searchSortConfiguration != null){ for (DiscoverySortFieldConfiguration sortFieldConfiguration : searchSortConfiguration.getSortFields()) { String sortField = SearchUtils.getSearchService().toSortFieldIndex(sortFieldConfiguration.getMetadataField(), sortFieldConfiguration.getType());
for (DiscoverySortFieldConfiguration sortFieldConfiguration : searchSortConfiguration.getSortFields()) { if(sortFieldConfiguration.equals(searchSortConfiguration.getDefaultSort())){ sortBy = SearchUtils.getSearchService().toSortFieldIndex(sortFieldConfiguration.getMetadataField(), sortFieldConfiguration.getType()); this.queryResults = SearchUtils.getSearchService().search(context, scope, queryArgs);
discoverQuery.addFilterQueries("archived: true"); return (int) SearchUtils.getSearchService().search(context, discoverQuery).getTotalSearchResults();
allFilterQueries.add(searchService.toFilterQuery(context, (type.equals("*") ? "" : type), value).getFilterQuery()); allFilterQueries.add(searchService.toFilterQuery(context, fq).getFilterQuery());
private void addStatusFilter(DiscoverQuery query) { if (itemsWithdrawn) { query.addFilterQueries("withdrawn:true"); } else if (!itemsDiscoverable) { query.addFilterQueries("discoverable:false"); // TODO try { if (!authorizeService.isAdmin(context) && (authorizeService.isCommunityAdmin(context) || authorizeService.isCollectionAdmin(context))) { query.addFilterQueries(searcher.createLocationQueryForAdministrableItems(context)); } } catch (SQLException ex) { log.error(ex); } } }
@Override public String doMaxQuery(String column, String table, int itemID) throws BrowseException { DiscoverQuery query = new DiscoverQuery(); query.setQuery("search.resourceid:" + itemID + " AND search.resourcetype:" + Constants.ITEM); query.setMaxResults(1); DiscoverResult resp = null; try { resp = searcher.search(context, query); } catch (SearchServiceException e) { throw new BrowseException(e); } if (resp.getTotalSearchResults() > 0) { SearchDocument doc = resp.getSearchDocument( resp.getDspaceObjects().get(0)).get(0); return (String) doc.getSearchFieldValues(column).get(0); } return null; }
allFilterQueries.add(getSearchService().toFilterQuery(context, (type.equals("*") ? "" : type), value).getFilterQuery()); allFilterQueries.add(getSearchService().toFilterQuery(context, fq).getFilterQuery());
/** * Retrieves the lowest date value in the given field * @param query a solr query * @param dateField the field for which we want to retrieve our date * @param filterquery the filterqueries * @return the lowest date found, in a date object */ private Date getLowestDateValue(Context context, String query, String dateField, String... filterquery){ try { DiscoverQuery discoverQuery = new DiscoverQuery(); discoverQuery.setQuery(query); discoverQuery.setMaxResults(1); discoverQuery.setSortField(dateField, DiscoverQuery.SORT_ORDER.asc); discoverQuery.addFilterQueries(filterquery); DiscoverResult rsp = searchService.search(context, discoverQuery); // if(0 < rsp.getResults().getNumFound()){ // return (Date) rsp.getResults().get(0).getFieldValue(dateField); // } }catch (Exception e){ log.error("Unable to get lowest date", e); } return null; }
for (int i = 0; i < request.getParameterValues("fq").length; i++) { String fq = request.getParameterValues("fq")[i]; fqs.add(getSearchService().toFilterQuery(context, fq).getFilterQuery());
public void performSearch() throws SearchServiceException, UIException, SQLException { DSpaceObject dso = getScope(); queryArgs = getQueryArgs(context, dso, getAllFilterQueries()); //If we are on a search page performing a search a query may be used Request request = ObjectModelHelper.getRequest(objectModel); String query = request.getParameter("query"); if(query != null && !"".equals(query)){ queryArgs.setQuery(query); } //We do not need to retrieve any dspace objects, only facets queryArgs.setMaxResults(0); queryResults = getSearchService().search(context, dso, queryArgs); }
DiscoverFilterQuery fq = searchService.toFilterQuery(context, filterQuery);
yearRangeQuery.addFilterQueries(filterQueries); yearRangeQuery.addSearchField(dateFacet); DiscoverResult lastYearResult = getSearchService().search(context, scope, yearRangeQuery); DiscoverResult firstYearResult = getSearchService().search(context, scope, yearRangeQuery); if( 0 < firstYearResult.getDspaceObjects().size()){ java.util.List<DiscoverResult.SearchDocument> searchDocuments = firstYearResult.getSearchDocument(firstYearResult.getDspaceObjects().get(0));
sResponse = searcher.search(context, query, false); List<FacetResult> commCount = sResponse.getFacetResult("location.comm"); List<FacetResult> collCount = sResponse.getFacetResult("location.coll");
queryResults = searchService.search(context, scope, queryArgs); } catch (SearchServiceException e) { log.error(e.getMessage(), e);
queryResults = searchService.search(context, scope, queryArgs); } catch (SearchServiceException e) { log.error(e.getMessage(), e);