...
Code Block | ||||
---|---|---|---|---|
| ||||
public class SitemapTemplatingFunction { private static final Logger log = LoggerFactory.getLogger(CorporateWebsiteTemplatingFunctionsSitemapTemplatingFunctions.class); public Collection<SolrDocument> getAllSolrIndexes() throws SolrServerException, IOException { return getAllSolrIndexes(null, null); } public Collection<SolrDocument> getAllSolrIndexes(String type) throws SolrServerException, IOException { return getAllSolrIndexes(type, null); } public Collection<SolrDocument> getAllSolrIndexes(String type, String... fields) throws SolrServerException, IOException { MagnoliaSolrBridge magnoliaSolrBridge = Components.getComponent(MagnoliaSolrBridge.class); SolrClient solrClient = magnoliaSolrBridge.getSolrClient(); SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery("*"); solrQuery.setStart(0); solrQuery.setSort("url", SolrQuery.ORDER.asc); // perform query with zero rows, to resolve number of results solrQuery.setRows(0); QueryResponse queryResponseNumberOfResults = solrClient.query(solrQuery); // resolve number of results int numberOfResults = Long.valueOf(queryResponseNumberOfResults.getResults().getNumFound()).intValue(); log.debug("Found {} document(s)", numberOfResults); solrQuery.setRows(numberOfResults); if (fields != null && fields.length > 0) { solrQuery.setFields(fields); } solrQuery.addField("url"); if (type != null) { solrQuery.addFilterQuery("type:" + type); } // perform query to get all result QueryResponse queryResponse = solrClient.query(solrQuery); return queryResponse.getResults(); } } |
...