@Override public List<FacetResult> getAllDims(int topN) throws IOException { List<FacetResult> results = new ArrayList<FacetResult>(); // First add the specific dim's facets: for(Map.Entry<String,Facets> ent : dimToFacets.entrySet()) { results.add(ent.getValue().getTopChildren(topN, ent.getKey())); } if (defaultFacets != null) { // Then add all default facets as long as we didn't // already add that dim: for(FacetResult result : defaultFacets.getAllDims(topN)) { if (dimToFacets.containsKey(result.dim) == false) { results.add(result); } } } return results; } }
@Override public List<FacetResult> getAllDims(int topN) throws IOException { List<FacetResult> results = new ArrayList<FacetResult>(); // First add the specific dim's facets: for(Map.Entry<String,Facets> ent : dimToFacets.entrySet()) { results.add(ent.getValue().getTopChildren(topN, ent.getKey())); } if (defaultFacets != null) { // Then add all default facets as long as we didn't // already add that dim: for(FacetResult result : defaultFacets.getAllDims(topN)) { if (dimToFacets.containsKey(result.dim) == false) { results.add(result); } } } return results; } }
/** User drills down on 'Publish Date/2010', and we * return facets for both 'Publish Date' and 'Author', * using DrillSideways. */ private List<FacetResult> drillSideways() throws IOException { DirectoryReader indexReader = DirectoryReader.open(indexDir); IndexSearcher searcher = new IndexSearcher(indexReader); TaxonomyReader taxoReader = new DirectoryTaxonomyReader(taxoDir); // Passing no baseQuery means we drill down on all // documents ("browse only"): DrillDownQuery q = new DrillDownQuery(config); // Now user drills down on Publish Date/2010: q.add("Publish Date", "2010"); DrillSideways ds = new DrillSideways(searcher, config, taxoReader); DrillSidewaysResult result = ds.search(q, 10); // Retrieve results List<FacetResult> facets = result.facets.getAllDims(10); indexReader.close(); taxoReader.close(); return facets; }