List of usage examples for org.apache.lucene.facet MultiFacets MultiFacets
public MultiFacets(Map<String, Facets> dimToFacets)
From source file:org.apache.jackrabbit.oak.plugins.index.lucene.util.FacetHelper.java
License:Apache License
public static Facets getFacets(IndexSearcher searcher, Query query, TopDocs docs, QueryIndex.IndexPlan plan, boolean secure) throws IOException { Facets facets = null;/*from w w w. j a va2 s .c om*/ @SuppressWarnings("unchecked") List<String> facetFields = (List<String>) plan.getAttribute(ATTR_FACET_FIELDS); if (facetFields != null && facetFields.size() > 0) { Map<String, Facets> facetsMap = new HashMap<String, Facets>(); for (String facetField : facetFields) { FacetsCollector facetsCollector = new FacetsCollector(); try { DefaultSortedSetDocValuesReaderState state = new DefaultSortedSetDocValuesReaderState( searcher.getIndexReader(), FieldNames.createFacetFieldName(facetField)); FacetsCollector.search(searcher, query, 10, facetsCollector); facetsMap.put(facetField, secure ? new FilteredSortedSetDocValuesFacetCounts(state, facetsCollector, plan.getFilter(), docs) : new SortedSetDocValuesFacetCounts(state, facetsCollector)); } catch (IllegalArgumentException iae) { LOGGER.warn("facets for {} not yet indexed", facetField); } } if (facetsMap.size() > 0) { facets = new MultiFacets(facetsMap); } } return facets; }