private void queryBasedPercolating( Engine.Searcher percolatorSearcher, PercolateContext context, QueryCollector percolateCollector) throws IOException { Filter percolatorTypeFilter = context.indexService().mapperService().documentMapper(TYPE_NAME).typeFilter(); percolatorTypeFilter = context.indexService().cache().filter().cache(percolatorTypeFilter); FilteredQuery query = new FilteredQuery(context.percolateQuery(), percolatorTypeFilter); percolatorSearcher.searcher().search(query, percolateCollector); for (Collector queryCollector : percolateCollector.facetAndAggregatorCollector) { if (queryCollector instanceof XCollector) { ((XCollector) queryCollector).postCollection(); } } if (context.facets() != null) { facetPhase.execute(context); } if (context.aggregations() != null) { aggregationPhase.execute(context); } }