File tree 1 file changed +4
-3
lines changed
modules/elasticsearch/src/main/java/org/elasticsearch/search/facets
1 file changed +4
-3
lines changed Original file line number Diff line number Diff line change @@ -72,10 +72,11 @@ public class FacetsPhase implements SearchPhase {
72
72
Filter facetFilter = new QueryWrapperFilter (queryFacet .query ());
73
73
facetFilter = context .filterCache ().cache (facetFilter );
74
74
long count ;
75
- if (contextFacets .queryType () == SearchContextFacets .QueryExecutionType .COLLECT ) {
76
- count = executeQueryCollectorCount (context , queryFacet , facetFilter );
77
- } else if (contextFacets .queryType () == SearchContextFacets .QueryExecutionType .IDSET ) {
75
+ // if we already have the doc id set, then use idset since its faster
76
+ if (context .searcher ().docIdSet () != null || contextFacets .queryType () == SearchContextFacets .QueryExecutionType .IDSET ) {
78
77
count = executeQueryIdSetCount (context , queryFacet , facetFilter );
78
+ } else if (contextFacets .queryType () == SearchContextFacets .QueryExecutionType .COLLECT ) {
79
+ count = executeQueryCollectorCount (context , queryFacet , facetFilter );
79
80
} else {
80
81
throw new ElasticSearchIllegalStateException ("No matching for type [" + contextFacets .queryType () + "]" );
81
82
}
You can’t perform that action at this time.
0 commit comments