/** * Returns all the sought after search document values * * @param dso the dspace object we want our search documents for * @return the search documents list */ public List<SearchDocument> getSearchDocument(DSpaceObject dso) { String dsoString = SearchDocument.getDspaceObjectStringRepresentation(dso); List<SearchDocument> result = searchDocuments.get(dsoString); if (result == null) { return new ArrayList<SearchDocument>(); } else { return result; } }
if(0 < searchDocuments.size() && 0 < searchDocuments.get(0).getSearchFieldValues(dateFacet).size()){ oldestYear = Integer.parseInt(searchDocuments.get(0).getSearchFieldValues(dateFacet).get(0)); if( 0 < firstYearResult.getDspaceObjects().size()){ java.util.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));
DiscoverResult.SearchDocument resultDoc = new DiscoverResult.SearchDocument(); valuesAsString.add(String.valueOf(o)); resultDoc.addSearchField(field, valuesAsString.toArray(new String[valuesAsString.size()]));
DiscoverResult.SearchDocument resultDoc = new DiscoverResult.SearchDocument(); valuesAsString.add(String.valueOf(o)); resultDoc.addSearchField(field, valuesAsString.toArray(new String[valuesAsString.size()]));
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)); } } }
@Override public String calculateExtremeValue(Context context, String valueField, String sortField, DiscoverQuery.SORT_ORDER sortOrder) throws SearchServiceException { DiscoverQuery maxQuery = new DiscoverQuery(); maxQuery.setMaxResults(1); //Set our query to anything that has this value maxQuery.addFieldPresentQueries(valueField); //Set sorting so our last value will appear on top maxQuery.setSortField(sortField, sortOrder); maxQuery.addSearchField(valueField); DiscoverResult maxResult = this.search(context,maxQuery); if (0 < maxResult.getDspaceObjects().size()) { List<DiscoverResult.SearchDocument> searchDocuments = maxResult .getSearchDocument(maxResult.getDspaceObjects().get(0)); if (0 < searchDocuments.size() && 0 < searchDocuments.get(0).getSearchFieldValues (valueField).size()) { return searchDocuments.get(0).getSearchFieldValues(valueField).get(0); } } return null; } }
@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; }
/** * Returns all the sought after search document values * @param dso the dspace object we want our search documents for * @return the search documents list */ public List<SearchDocument> getSearchDocument(DSpaceObject dso){ String dsoString = SearchDocument.getDspaceObjectStringRepresentation(dso); List<SearchDocument> result = searchDocuments.get(dsoString); if(result == null){ return new ArrayList<SearchDocument>(); }else{ return result; } }
public void addSearchDocument(DSpaceObject dso, SearchDocument searchDocument){ String dsoString = SearchDocument.getDspaceObjectStringRepresentation(dso); List<SearchDocument> docs = searchDocuments.get(dsoString); if(docs == null){ docs = new ArrayList<SearchDocument>(); } docs.add(searchDocument); searchDocuments.put(dsoString, docs); }
public void addSearchDocument(DSpaceObject dso, SearchDocument searchDocument) { String dsoString = SearchDocument.getDspaceObjectStringRepresentation(dso); List<SearchDocument> docs = searchDocuments.get(dsoString); if (docs == null) { docs = new ArrayList<SearchDocument>(); } docs.add(searchDocument); searchDocuments.put(dsoString, docs); }