/** Subclass can override to customize per-dim Facets * impl. */ protected Facets buildFacetsResult(FacetsCollector drillDowns, FacetsCollector[] drillSideways, String[] drillSidewaysDims) throws IOException { Facets drillDownFacets; Map<String,Facets> drillSidewaysFacets = new HashMap<>(); if (taxoReader != null) { drillDownFacets = new FastTaxonomyFacetCounts(taxoReader, config, drillDowns); if (drillSideways != null) { for(int i=0;i<drillSideways.length;i++) { drillSidewaysFacets.put(drillSidewaysDims[i], new FastTaxonomyFacetCounts(taxoReader, config, drillSideways[i])); } } } else { drillDownFacets = new SortedSetDocValuesFacetCounts(state, drillDowns); if (drillSideways != null) { for(int i=0;i<drillSideways.length;i++) { drillSidewaysFacets.put(drillSidewaysDims[i], new SortedSetDocValuesFacetCounts(state, drillSideways[i])); } } } if (drillSidewaysFacets.isEmpty()) { return drillDownFacets; } else { return new MultiFacets(drillSidewaysFacets, drillDownFacets); } }
/** * Subclass can override to customize per-dim Facets * impl. */ protected Facets buildFacetsResult(FacetsCollector drillDowns, FacetsCollector[] drillSideways, String[] drillSidewaysDims) throws IOException { Facets drillDownFacets; Map<String, Facets> drillSidewaysFacets = new HashMap<>(); if (taxoReader != null) { drillDownFacets = new FastTaxonomyFacetCounts(taxoReader, config, drillDowns); if (drillSideways != null) { for (int i = 0; i < drillSideways.length; i++) { drillSidewaysFacets.put(drillSidewaysDims[i], new FastTaxonomyFacetCounts(taxoReader, config, drillSideways[i])); } } } else { drillDownFacets = new SortedSetDocValuesFacetCounts(state, drillDowns); if (drillSideways != null) { for (int i = 0; i < drillSideways.length; i++) { drillSidewaysFacets.put(drillSidewaysDims[i], new SortedSetDocValuesFacetCounts(state, drillSideways[i])); } } } if (drillSidewaysFacets.isEmpty()) { return drillDownFacets; } else { return new MultiFacets(drillSidewaysFacets, drillDownFacets); } }
protected Facets buildFacetsResult(final FacetsCollector drillDowns, final FacetsCollector[] drillSideways, final String[] drillSidewaysDims) throws IOException { final Map<String, Facets> drillSidewaysFacets = new HashMap<>(); final FastTaxonomyFacetCounts fastTaxonomyFacets = taxoReader == null ? null : new FastTaxonomyFacetCounts( taxoReader, config, drillDowns); final SortedSetDocValuesFacetCounts docValuesFacets = state == null ? null : new SortedSetDocValuesFacetCounts( state, drillDowns); if (drillSideways != null) { for (int i = 0; i < drillSideways.length; i++) { final String dim = drillSidewaysDims[i]; final Facets facets; final String indexFieldName = config.getDimConfig(dim).indexFieldName; if (state != null && stateIndexField.equals(indexFieldName)) { facets = new SortedSetDocValuesFacetCounts(state, drillSideways[i]); } else if (taxoReader != null) { facets = new FastTaxonomyFacetCounts(taxoReader, config, drillSideways[i]); } else facets = null; if (facets != null) drillSidewaysFacets.put(dim, facets); } } final Facets facets = new MixedFacets(docValuesFacets, fastTaxonomyFacets); return drillSidewaysFacets.isEmpty() ? facets : new MultiFacets(drillSidewaysFacets, facets); }
facets = new MultiFacets(facetsMap, NULL_FACETS);
facets = new MultiFacets(facetsMap, NULL_FACETS);